使用多模块项目处理 Android M 运行 次权限

Handling Android M run-time permissions with multi module project

我有一个多模块 Android M 应用程序。几个模块需要 "WRITE_EXTERNAL_STORAGE" & "READ_EXTERNAL_STORAGE" 权限。

我想向用户请求一次权限:
1. 哪里才是合适的地方?
1.1 是否根据 activity 授予权限?
1.2 在模块 1 中请求权限是否会授予所有应用程序权限?
1.3 有没有办法同时请求 READ 和 WRITE 权限?

Where would be the right place to do that?

在你需要这些权限之前,从你的 UI 中的某个地方。

Are permissions granted per activity?

不,它们适用于整个应用程序。

Would asking for permission in module 1 give permissions to all app?

如果用户授予您权限,则在模块中请求权限会将权限授予整个应用程序。

Is there a way to ask for both READ & WRITE permissions?

在这种情况下,AFAIK 你不需要两者。只求 WRITE_EXTERNAL_STORAGE。通常,您可以请求任意数量的权限; requestPermissions() 方法采用 String[] 权限名称。

Google 已发布指南,说明何时请求权限。这取决于上下文。您的问题 1.1 和 1.2 可以用相同的信息来回答:在应用级别授予和拒绝权限。它适用于您的应用程序包的每个部分。对于1.3:他们被限制在一起成一个组。当您要求一个时,您会自动获得组中的所有内容。

DroidconNYC NYC 的这次演讲将为您提供更多详细信息:https://youtu.be/WGz-alwVh8A