我的 Android 应用程序与电话无关,但我发现当我在测试设备上安装调试版本时,它需要“电话:读取电话状态和身份”权限。 (我在AndroidManifest.xml
).
我想拥有尽可能小的权限,想知道是否有人知道如何摆脱这个?我注释掉了我记录一些内容的部分Build.MODEL
, Build.VERSION.*
等等。我还注释掉了我检测横向/纵向方向的部分,认为这可能是“电话状态”。但这些似乎都没有取消所需的许可。
我发现了这个错误报告:http://code.google.com/p/android/issues/detail?id=4101但它被标记为按预期工作,并附有关于市场许可正确的注释,但除此之外没有。这是别人的经历吗? (我不想发布到市场只是为了测试这一点。)否则,有谁知道是否有一个我可以避免调用的 API,这样我的应用程序就不需要此权限?
Thanks!
(回答我自己的问题,以防其他人遇到这个问题并搜索它。)
在android源代码中的PackageParser.java中进行挖掘,我发现系统会自动分配
android.permission.WRITE_EXTERNAL_STORAGE and
android.permission.READ_PHONE_STATE
任何声明 targetSdk 版本低于 4 的应用程序(甜甜圈)。这肯定有兼容性原因,也许针对旧版本的应用程序可以假设它们拥有这些权限,而无需明确声明它们。因此,如果您不希望将这些权限隐式添加到您的应用程序中,请在 AndroidManifest.xml 中添加如下所示的部分
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="4" />
就这些。
玩得开心,-迈克
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)