我在我的应用程序中拥有一些权限,比如
<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: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.permission.ACCESS_LOCATION_EXTRA_COMMANDS
是什么意思? - CQMACCESS_LOCATION_EXTRA_COMMANDS
,我建议将其删除并测试您的应用程序,以确认它仍然可以正常工作。 - CommonsWare