Android M权限安装/更新行为

Tho*_* R. 5 permissions android android-6.0-marshmallow

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

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

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

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

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

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

Tho*_* R. 5

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

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

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

    • 使用目标SDK 23更新应用后,仍然会拒绝权限
  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的权限信息中)