【发布时间】:2012-09-20 13:31:55
【问题描述】:
我在我的应用中有一些权限,例如
<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 涵盖了很多<uses-permission/> 功能。没有 android.hardware.location.ACCESS_MOCK_LOCATION 或 android.hardware.location.CONTROL_LOCATION_UPDATES ,只有 android.hardware.location
这里有几个假设,但 android 开发人员文档并没有详细说明,只是表明那些单独的 uses-permissions 暗示需要一个 uses-feature。当它不一定是必需的,我只是想确保我的 android sdk 调用有权运行
问题:
1) 如果我取消了其中三个 uses-permissions 中的两个,我所有与 A-GPS 相关的调用是否仍会像我设置了所有这些单独的权限一样以完全相同的方式工作?
2) android.hardware.location 是否更具体?我见过android.hardware.location.NETWORK,但我在哪里可以看到所有的可能性?
【问题讨论】:
标签: android sdk permissions android-manifest filtering