Android M权限安装/更新行为

时间:2015-09-04 07:41:48

标签: android permissions android-6.0-marshmallow

使用Android Marshmallow,有一个新的权限模型。对我受影响的应用权限实施新模型并不是什么大问题。但是有一些关于安装和更新行为的问题。我发现了一些对我很重要的场景。我知道官方文档(https://developer.android.com/preview/features/runtime-permissions.html),有些事情可能很清楚,但我想确定。

  1. 目标SDK最大的应用22安装在M设备上并授予所有权限 - >使用新权限模型更新应用

  2. 目标SDK最大的应用安装在M设备上的22并且所有权限被拒绝 - >使用新权限模型更新应用

  3. 在M设备上安装带有目标SDK 23的应用程序

  4. 目标SDK 22或23的应用程序以及授予的所有权限 - >添加已授予组权限(read_storage)的新权限和另一组的新权限(read_contacts)

  5. 目标SDK 23和授予read_contacts的应用程序 - >添加联系人组的另一个权限(write_contacts)

1 个答案:

答案 0 :(得分:5)

使用开发者控制台和Android测试版我测试了我自己的场景。这是我的结果。他们中的大多数符合我的期望,但我想总结一下。也许这有助于你们中的一个人有同样的问题,只是想知道它是否像预期的那样。没有声称这是完整的。

  1. 目标SDK最大的应用22安装在M设备上并授予所有权限 - >使用新权限模型更新应用

    • 使用目标SDK进行应用更新后,仍然授予权限23
  2. 目标SDK最大的应用安装在M设备上的22并且所有权限被拒绝 - >使用新权限模型更新应用

    • 使用目标SDK更新应用后仍然拒绝使用权限
  3. 在M设备上安装带有目标SDK 23的应用

    • 安装时无需任何用户互动或通知
    • 安装后拒绝所有权限,需要被授予 - >权限对话框显示为已实施
  4. 目标SDK 22或23的应用程序以及授予的所有权限 - >添加已授予组权限(read_storage)的新权限和另一组的新权限(read_contacts)

    • 让write_storage自动授予read_storage(开发者控制台已将此添加到APK的权限信息中)
    • read_contacts仅请求read_contacts(开发者控制台仅显示此APK的特定权限)
    • 以前授予的权限都可以,需要授予read_contacts
  5. 目标SDK 23和授予read_contacts的应用程序 - >从联系人组添加另一个权限(write_contacts)

    • 没有特殊处理,可以在没有任何进一步用户交互的情况下使用权限
    • 在较旧的设备上(目标最大值为22),用户未获得有关新权限的通知,因为他已授予群组权限
    • 在开发者控制台中添加write_contacts时,权限可见但未标记为新(在APK的权限信息中)