gpt4 book ai didi

Android 6.0 向后兼容

转载 作者:行者123 更新时间:2023-11-30 01:15:53 25 4
gpt4 key购买 nike

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

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

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

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

最佳答案

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

  • If the device is running Android 5.1 or lower, or your app's target SDK is 22 or lower: If you list a dangerous permission in your manifest, the user has to grant the permission when they install the app; if they do not grant the permission, the system does not install the app at all.
  • If the device is running Android 6.0 or higher, and your app's target SDK is 23 or higher: The app has to list the permissions in the manifest, and it must request each dangerous permission it needs while the app is running. The user can grant or deny each permission, and the app can continue to run with limited capabilities even if the user denies a permission request.

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

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

Note: Beginning with Android 6.0 (API level 23), users can revoke permissions from any app at any time, even if the app targets a lower API level. You should test your app to verify that it behaves properly when it's missing a needed permission, regardless of what API level your app targets.

这对您的应用(甚至是旧应用)意味着它们需要能够在失去您通常期望它们拥有的特权的情况下生存下来。相应地进行测试和更新。

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

关于Android 6.0 向后兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37868369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com