uses-permission
Android的权限在AndroidManifest.xml文件里配置。AndroidManifest文件中有四个标签与permission有关,他们分别是
<permission><permission-group><permission-tree><uses-permission>。
其中最常用的是<uses-permisson>
当我们需要获取某个权限的时候,就必须在我们manifest文件中声明<users-permission>
<psermission>和<uses-permission>的作用相似,两者之间的不同之处,<uses-permission>是android预定义的权限,<permission>是自己定义的权限。
<permission>用得相对较少,<permission-group><permission-tree>这两个标签用的就更少了。简单说<permission-group>就是声明一个标签,该标签代表了一组permission,而<permission-tree>是为一组permissions声明了一个namespace。
uses-permission>是我们用的最多的,官方文档定义方式如下:
<uses-permission android:name="string" />
程序代码:
android.permission.WRITE_EXTERNAL_STORAGE允许程序写入外部存储,如SD卡上写文件
android.permission.VIBRATE允许程序振动
android.permission.CAMERA允许程序访问摄像头进行拍照
android.permission.SEND_SMS允许程序发送短信
android.permission.RECEIVE_SMS允许程序接收短信
android.permission.RECEIVE_MMS允许程序接收彩信
android.permission.READ_SMS允许程序读取短信内容
android.permission.FLASHLIGHT允许访问闪光灯
android.permission.CHANGE_WIFI_STATE允许程序改变WiFi状态
android.permission.BLUETOOTH_ADMIN允许程序进行发现和配对新的蓝牙设备
android.permission.BLUETOOTH允许程序连接配对过的蓝牙设备
android.permission.ACCESS_WIFI_STATE允许程序获取当前WiFi接入的状态以及WLAN热点的信息
android.permission.ACCESS_NETWORK_STATE允许程序获取网络信息状态,如当前的网络连接是否有效
android.permission.ACCESS_LOCATION_EXTRA_COMMANDS允许程序访问额外的定位提供者指令
android.permission.ACCESS_FINE_LOCATION允许程序通过GPS芯片接收卫星的定位信息
android.permission.ACCESS_COARSE_LOCATION允许程序通过WiFi或移动基站的方式获取用户错略的经纬度信息
————————————————
参考:https://blog.csdn.net/lxm20819/article/details/88869871
uses-feature
在android的manifest文件:AndroidManifest.xml中,
有个:uses-feature这个xml节点。
用于指定android程序,是否需要某种硬件或软件资源/功能。
uses-feature的语法
<uses-feature android:name="string" android:required=["true" | "false"] android:glEsVersion="integer" /
android:name 硬件或软件资源的名字。
硬件方面的:
摄像头:android.hardware.camera
- 各种传感器:
- 加速计: android.hardware.sensor.accelerometer
- 气压计: android.hardware.sensor.barometer
- 指南针: android.hardware.sensor.compass
- 陀螺仪: android.hardware.sensor.gyroscope
- 感光: android.hardware.sensor.light
- 近距离感测: android.hardware.sensor.proximity
- 麦克风: android.hardware.microphone
- 定位: android.hardware.location
- USB:
- USB Host: android.hardware.usb.host
- WIFI:android.hardware.wifi
- 蓝牙:android.hardware.bluetooth
软件方面的:
- Bluetooth Low Energy:android.software.bluetooth_le
- VOIP:android.software.sip.voip
uses-feature,只是起到指示性的作用,不是强制的检测
android:required
- android: required="true" :表示需要设备具有某个功能。
- 如果设备没有该功能,则程序不工作,就是可以理解的
- android:required="false" :表示希望设备,最好具有某个功能
- 设备即使没有该功能,程序也应该可以正常工作
如果不指定,默认为true: android: required="true"
———————————————— ———————————————————————————————————————————————————————————————————————————————————— |
Android Manifest 中 uses-feature 和 uses-permission的作用 关系和区别
Manifest中的 <uses-permission android:name="android.permission.CAMERA" />
和 <uses-feature android:name="android.hardware.camera" android:required=false />
到底什么关系?
其实,他们俩一个负责描述 app 会用到什么功能,一个负责向系统请求 app 所需要的权限,它们经常会搭配在一起使用。开发者应该根据自己的实际需求来使用对应的标签。
uses-feature 的作用更像是一个过滤器,google play 商店会根据该标签来过滤设备,比如用户在 uses-feature
中声明了要使用相机,这时候在 google play 商店中该 app 就不再对没有照相机的设备显示。但是,如果用户同时也设置了
uses-feature 的属性 android:required 为 false 的话,google play
商店仍然会对没有照相机的设备显示该 app。
uses-permission 则像是一个权限助手,帮助 app 去向用户请求 app 需要使用的权限。
摘自:https://www.cnblogs.com/ichenwin/p/10992362.html