Android:在理解运行时权限方面的困惑

时间:2019-01-25 20:12:36

标签: android android-runtime

我正在我的应用程序中实现运行时权限。我有几个问题可以清楚地理解。

情况:

  • 我的应用B 应用A
  • 的子应用
  • 也就是说,我的应用程序作为它的一部分驻留在 application A 中,并且在需要时可以启动它。

问题:

  1. 如果用户已向应用A (父应用)授予了所有必要的运行时权限,则子应用(即应用B )可以随身携带相同的许可授予,还是不得不再次询问他们?

  2. 是否要在旧版本的应用程序上安装新版本的应用程序,是否需要再次询问权限?假设版本2到3。

1 个答案:

答案 0 :(得分:0)

从技术上讲,是的。如果app-A和app-B是两个单独的应用程序,则它们各自需要自己的一组权限和权限请求。

不,如果以前曾允许过权限,则安装较新版本不会重置该权限的状态。

但是,如果您希望app-B保留与app-A相同的权限状态,则应调查名为android:sharedUserId的事物。如果app-A与app-B具有相同的 sharedUserId ,则app-B将​​具有与app-A相同的权限状态,反之亦然。

我找不到任何讨论相同应用程序之间共享权限状态的文章,但是您可以查看其中一些文章以获取更多注释:

我自己进行了一次快速测试,可以确认具有相同sharedUserId的两个应用程序确实共享权限状态,因此请自己尝试。只需设置一个示例项目/应用程序即可检查并请求权限,对其进行克隆,将它们赋予相同的sharedUserId,然后安装它们两个,对其中一个授予许可,您将看到它已经处于允许状态另一方面。