设置访问权限
每个Android程序都有一个配置文件AndroidManifest.xml,用来定义程序所有的配置信息,其中一个重要的部分是资源权限声明。Android拥有完善的安全机制,所有敏感的系统资源在默认情况下都是无法访问的,只有在配置文件中加入了对相关权限的声明后,才能进行相应操作。比如,如果程序需要访问网络,则必须添加开启网络访问权限的声明。用户在安装该程序时,能够看到程序所用到的所有权限,这样就能够避免被安装恶意程序。
在打包apk的过程中,AIR SDK会自动创建AndroidManifest.xml文件,并将应用程序描述文件中的android节点的内容映射到AndroidManifest.xml中,从而简化了开发流程。
在FlipIt项目中,android节点里面加入了一项设置,内容如下:
- <android>
- <manifestAdditions>
- <![CDATA[<manifest>
- <uses-permission android:name="android.permission.INTERNET"/>
- </manifest>]]>
- </manifestAdditions>
- </android>
manifestAdditions节点,顾名思义,是对manifest文件的补充,放入manifest中的内容必须符合AndroidManifest.xml的格式。其中的uses-permission节点即权限声明类型,对应的权限名称为android.permission.INTERNET,表示访问网络的权限。如果没有添加网络访问权限的声明,所有对外部的HTTP请求都将失败。
AIR支持以下几种权限设置:
android.permission.INTERNET:访问网络。
android.permission.WRITE_EXTERNAL_STORAGE:外部存储设备(即SD卡)的写权限。
android.permission.READ_PHONE_STATE:在通话时调节音量。
android.permission.ACCESS_FINE_LOCATION:通过GPS设备获取位置信息。
android.permission.ACCESS_COARSE_LOCATION:通过网络信号获取位置信息。
android.permission.CAMERA:使用摄像头。
android.permission.RECORD_AUDIO:使用麦克风。
android.permission.DISABLE_KEYGUARD:禁用键盘锁。
android.permission.WAKE_LOCK:禁止自动休眠。
android.permission.ACCESS_NETWORK_STATE:访问网络状态。
android.permission.ACCESS_WIFI_STATE:访问WI-FI状态。
如果程序中用到多项权限,则一一列在manifest节点下。