Android Marshmallow 新权限支持

Android Marshmallow new permission support

我必须像以前一样在 Manifest 中声明所有权限吗?

我问它是有原因的 - 让我们假设您在应用中引入了一个需要联系人权限的新功能,让我们从产品的angular来考虑它。

对于 Marshmallow 用户来说,一切都会好起来的(关于 UX)——在更新时,他们不会要求新的权限,而只会在需要的时候要求。这对我来说没问题。

但是,之前的 Marshmallow 用户会在更新时被要求获得新的权限,并且可能会拒绝它,因此不会更新应用程序。不好。

如果我希望我的新功能仅适用于 Marshmallow 及更高版本的用户,而旧版本用户将无法获得该功能并在更新时被要求获得新权限怎么办?我可以做这样的事情吗?

希望我已经足够清楚了。


Must I declare all the permissions in the Manifest as before?

它们必须在清单中,是的。

What if I want my new feature to be available only for Marshmallow users and above, while older versions users won't get the feature and be asked for the new permission upon update? Can I do something like this?

是的。使用名称笨拙的 <uses-permission-sdk-23> 元素代替 <uses-permission>。在 API 级别 22 和更早的设备上,此元素将被忽略。在 API 级别 23 设备上,您可以正常在运行时请求权限。