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



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

我想向用户请求一次权限:
1. 哪里是这样做的合适地方?
1.1 是否按活动授予权限?
1.2 在模块 1 中请求权限会授予所有应用程序权限吗?
1.3 有没有办法同时请求读写权限?

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

DroidconNYC NYC NYC的這場演講將為你們提供更多詳情:https://youtu.be/WGz-alwVh8A。

哪里是这样做的合适地方?

在需要这些权限之前,从 UI 中的某个位置。

是否按活动授予权限?

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

在模块 1 中请求权限会授予所有应用程序权限吗?

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

有没有办法同时请求读写权限?

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

最新更新