uses-permission和uses-feature

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"

 

————————————————
参考:https://blog.csdn.net/hanfengzqh/article/details/76876428

————————————————————————————————————————————————————————————————————————————————————

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

原文地址:https://www.cnblogs.com/xtxt1127/p/12370603.html