uses-feature:
定义该app会用到的硬件或者软件的功能,标签的目的是用来描述该app所依赖的硬件和软件的功能有哪些,并不负责向系统去请求权限。,比如说,app用到了相机的功能,用户可以在uses-feature 中定义一个照相机的功能,但是这个时候app并没有去请求系统赋予该app照相机权限,想要正常使用照相机的话,还需要在uses-permission标签中再去请求照相机权限。
写法:
<uses-feature
android:name="string"
android:required=["true" | "false"]
android:glEsVersion="integer" />
android:required | 为ture时表示该功能对于app来说是必须有的,如果某一设备不具备该功能,google play 商店将会对该设备隐藏该app;为false时表示该功能对于app来说时非必需的,即使某一设备不具备该功能,google play商店仍然会对该设备显示该app
android:glEsVersion | 指定openGL ES的版本号,只针对open GL功能
uses-permission
告诉系统让系统向用户请求指定的权限供该app使用。
由以上所述,它们两个之间其实没多少关系,一个负责描述app会用到什么功能,一个负责向系统请求app所需要的权限,它们经常会搭配在一起使用。开发者应该根据自己的实际需求来使用对应的标签。
uses-feature的作用更像是一个过滤器,google play 商店会根据该标签来过滤设备,比如用户在uses-feature中声明了要使用相机,这时候在google play商店中该app就不再对没有照相机的设备显示。但是,如果用户同时也设置了uses-feature的属性android:required 为false的话,google play商店仍然会对没有照相机的设备显示该app。
uses-permission 则像是一个权限助手,帮助app去向用户请求app需要使用的权限。