Android Marshmallow 新权限支持

Android Marshmallow new permission support

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

我这样问是有原因的 - 让我们假设您在应用中引入了一项需要联系人权限的新功能,让我们从产品的角度考虑一下。

当涉及到 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?

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