【问题标题】:Android 6.0 backward compatibilityAndroid 6.0 向后兼容
【发布时间】:2016-06-16 19:59:24
【问题描述】:

今天我在 Android M (6.0) 上测试我的一个应用程序。我了解到此版本中的权限授予已更改,我需要进行一些更改以使我的应用程序与 Android 6.0 (here is the details) 兼容。

据我了解,例如,如果我想授予写入 sdcard(永久存储)的访问权限,这是一个危险的权限,我必须要求用户授予访问权限,然后处理用户决定(授予/拒绝)否则总是我的请求总是被拒绝。

我不知道我是否正确,但我想知道它是否以某种方式违反了向后兼容性?我的意思是在旧版本中运行的每个应用程序都需要更改才能在 6.0 版中运行?如果不再支持特殊应用,那么android 6.0是我们应该告别的地方吗?

在这种新环境下,我需要更改我的旧应用程序以使其在 Marshmallow 中运行(如果它们需要危险的权限)?

【问题讨论】:

    标签: android android-6.0-marshmallow android-permissions backwards-compatibility forward-compatibility


    【解决方案1】:

    似乎保持了向后兼容性。来自the page you linked

    • 如果设备运行的是 Android 5.1 或更低版本,您应用的目标 SDK 为 22 或更低版本:如果您在清单中列出危险权限,则用户必须在安装时授予该权限应用程序;如果他们不授予权限,则系统根本不会安装该应用程序。
    • 如果设备运行的是 Android 6.0 或更高版本,并且您应用的目标 SDK 为 23 或更高版本:应用必须在清单中列出权限,并且必须请求它需要的每个危险权限在应用程序运行时。用户可以授予或拒绝每个权限,即使用户拒绝权限请求,应用也可以继续以有限的功能运行。

    因此,针对 SDK 22 或更低版本的旧应用程序将看到在安装时授予权限的旧行为。只有面向 SDK 23 或更高版本的新应用才需要立即担心这一点。

    该页面确实列出了您应该注意的一个警告:

    注意:从 Android 6.0(API 级别 23)开始,用户可以随时撤消任何应用的权限,即使该应用的目标 API 级别较低。无论您的应用所针对的 API 级别如何,您都应该测试您的应用以验证它在缺少所需权限时是否能够正常运行。

    这对您的应用(即使是旧版应用)而言意味着它们需要能够在缺少您通常期望它们拥有的特权时幸存下来。相应地进行测试和更新。

    对于您已安装的任何第三方旧版应用,这意味着在撤销其权限时必须谨慎行事,因为假设其特权操作会成功的应用在这些权限被意外撤销时可能会出现问题。显然,第三方开发人员应该对此进行测试和解决,但这可能并不总是发生。

    【讨论】:

    • 正如我检查的那样,我可以在应用程序设置中手动将所有危险权限授予应用程序。里面显示了清单中列出的所有危险权限,我可以授予对它们的永久访问权限。
    【解决方案2】:

    来自 Android 文档:

    在所有版本的 Android 上,您的应用都需要声明正常 以及它在其应用清单中所需的危险权限,如 在声明权限中描述。然而,这样做的效果 声明因系统版本和您的 应用的目标 SDK 级别:

    • 如果设备运行的是 Android 5.1 或更低版本,或者您应用的目标 SDK 为 22 或更低:如果您在您的 manifest,用户必须在安装时授予权限 应用程序;如果他们不授予权限,则系统不会安装 应用程序。
    • 如果设备运行的是 Android 6.0 或更高版本,并且 您应用的目标 SDK 为 23 或更高版本:该应用必须列出 清单中的权限,并且它必须请求每个危险 应用程序运行时所需的权限。用户可以授予或 拒绝每个权限,应用程序可以在受限的情况下继续运行 即使用户拒绝权限请求,也可以使用。

    如果您想在Android 6.0 中运行您的应用程序,那么您必须编写逻辑以在运行时请求权限。
    但它不会改变您的应用在旧版本中的行为,对于这些情况,将在安装时请求权限。

    【讨论】:

      猜你喜欢
      • 2019-01-13
      • 1970-01-01
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多