AndroidManifest.xml隐含权限vs显式权限(使用功能vs使用权限)
我在我的应用程序中有一些权限,例如AndroidManifest.xml隐含权限vs显式权限(使用功能vs使用权限),android,sdk,permissions,android-manifest,filtering,Android,Sdk,Permissions,Android Manifest,Filtering,我在我的应用程序中有一些权限,例如 <uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_MOCK_L
<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
我怀疑它们实际上是不必要的
根据Android文档,它们都暗示
<uses-feature
android:name="android.hardware.location"/>
这是真实和必要的
比如说,如果我从三个命令中拿出两个,我所有的A-GPS相关的呼叫仍然会以完全相同的方式工作
除了人们重复android文档之外,关于这方面的文献似乎并不多
最终,我认为对于代码中的许多元素来说,意味着android:required=true限制了我可以访问的设备数量
<uses-feature
android:name="android.hardware.location" android:required="false"/>
将向更多的设备开放应用程序,我可以在应用程序中使用有条件的逻辑来执行某些功能
但我的主要问题是,android.hardware.location
涵盖了很多
功能。没有android.hardware.location.ACCESS\u MOCK\u location
或android.hardware.location.CONTROL\u location\u更新
,只有android.hardware.location
这里有几个假设,但是android开发者文档并没有详细说明,只是揭示了那些单独的使用权限
意味着需要一个使用功能
。当它不一定是必需的,我只是想确保我的android sdk调用有运行的权限
问题:
1) 如果我从三个使用权限中拿出两个
,那么我所有与A-GPS相关的呼叫是否仍会像我设置了所有这些单独权限一样工作
2) android.hardware.location
是否变得更具体?我看过安卓、硬件、位置、网络,但我在哪里可以看到所有的可能性
比如说,如果我从三个命令中拿出两个,我所有的A-GPS相关的呼叫仍然会以完全相同的方式工作
那么,这三个权限中的两个应该是不必要的<代码>访问模拟位置与GPS无关,但与您自己的模拟位置提供商有关。引述:
伙计们,请在发布应用程序之前从清单中删除访问\u模拟\u位置权限。遗忘使你成为业余爱好者
普通SDK应用程序无法保存控制位置更新
——这仅适用于使用固件签名密钥签名的应用程序或安装在固件本身中的应用程序
因此,一个普通的SDK应用程序可以删除这两个用于生产的应用程序,也可以删除CONTROL\u LOCATION\u UPDATES
用于开发。如果你没有在应用程序中使用模拟位置提供者,你也可以在开发中删除ACCESS\u mock\u location
。最有可能的是,你根本不应该将这两个权限添加到你的应用程序中
但这一切都与
无关
我可以在应用程序中使用有条件的逻辑来执行某些功能
当然。在处理LocationManager
之前,您可以使用PackageManager
上的hasSystemFeature()
查看是否有android.hardware.location
但我的主要问题是android.hardware.location涵盖了这么多的功能
动词“cover”在这里对我来说毫无意义,或者在某种程度上,你的方向颠倒了<代码>元素可能意味着
元素,但不是相反
如果我从三个使用权限中拿出两个,那么我所有与A-GPS相关的呼叫是否仍能像我设置了所有这些单独权限一样工作
见上文
我看过android.hardware.location.NETWORK
您可能已经看到了android.hardware.location.network
我看过android.hardware.location.NETWORK
在
的文档中:谢谢,关于android.permission.ACCESS_LOCATION\u EXTRA_COMMANDS呢?
@CQM:这是一个正常的权限(即,一个普通的SDK应用程序可以保存它),尽管我不知道它在SDK中控制什么。感谢您的洞察力,我正在修复一个其他人编写的应用程序,由于清单过滤,很多设备在市场上找不到该应用程序,但在我疯狂更改它们之前,我没有识别出它们使用的所有权限。但是我不想让访问\u位置\u额外的\u命令
权限仅仅成为android.hardware.LOCATION
的必要条件,但我不知道它控制着什么either@CQM:由于我从未见过使用ACCESS\u LOCATION\u EXTRA\u命令,因此我只需删除它并测试你的应用程序,以确认它仍然有效。