【问题标题】:Android permissions: Phone Calls: read phone state and identityAndroid 权限:电话:读取电话状态和身份
【发布时间】:2009-11-17 07:31:37
【问题描述】:

我的 android 应用与电话无关,但我看到当我在测试设备上安装调试版本时,它需要“电话:读取电话状态和身份”权限。 (我在AndroidManifest.xml 中没有提到这一点)。

我想拥有尽可能少的权限,并想知道是否有人知道如何摆脱它?我注释掉了我从Build.MODELBuild.VERSION.* 等记录一些东西的部分。我还注释掉了我检测横向/纵向方向的部分,认为这可能是“电话状态”。但这些似乎都没有删除所需的权限。

我发现了这个错误报告:http://code.google.com/p/android/issues/detail?id=4101,但它被标记为按预期工作,并附有说明市场上的权限是正确的,但不是其他的。这是别人的经验吗? (我不想为了测试而不得不发布到市场上。)否则,有谁知道是否有一个我可以避免调用的 API 可以让我的应用程序不需要这个权限?

谢谢!

【问题讨论】:

    标签: android


    【解决方案1】:

    (回答我自己的问题,以防其他人遇到此问题并搜索它。)

    在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" />
    

    就是这样。

    玩得开心,-迈克

    【讨论】:

    • 所以在 1.5 及之前的版本中,您是说这些权限是默认分配的,没有办法缓解这种情况?
    • 对我来说就是这样。否则,我不知道为什么他们会被这样含蓄地授予。我想对于测试,我们可以尝试在 1.5 模拟器/设备上运行 1.5 应用程序,而不设置任何使用权限并查看是否可以(例如)写入 sdcard。 (这确实适用于 1.6 模拟器/设备,但只是因为隐式添加的权限。将 targetSdkVersion 设置为 4 将强制您在写入 sdcard 之前也添加使用权限。)
    • 我的 android:minSdkVersion 是 14,但 READ_PHONE_STATE 是隐式授予的。我正在使用 Facebook SDK 和 GoogleMaps v2,这些库是否可能负责隐式权限请求?
    【解决方案2】:

    Android 1.6 更新日志:http://developer.android.com/sdk/android-1.6.html#api

    WRITE_EXTERNAL_STORAGE:允许 应用程序写入外部 贮存。 使用 API 级别的应用程序 3 及以下将被隐式授予 此权限(这将是 对用户可见);应用 必须使用 API 4 级或更高级别 明确请求此权限。

    但这只是其中之一。由于某种原因,官方更改日志缺少有关 READ_PHONE_STATE 的信息。完整的故事在这里被清除:http://blogs.zdnet.com/Burnette/?p=1369&page=3

    新权限。 1.6 程序必须 明确要求 WRITE_EXTERNAL_STORAGE 权限 可以修改内容 SD 卡,并且必须明确 请求 READ_PHONE_STATE 允许能够 检索电话状态信息。 应用 始终以早期版本为目标 隐式请求这些权限。

    如您所见,在运行 1.6 或更高版本的手机上安装时,如果不请求这些权限,就无法发布针对 1.5 或更早版本的应用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-24
      • 2018-12-14
      相关资源
      最近更新 更多