在 Android 中添加 Layer 库依赖项会抑制 requestPermissions 对话框

2023-12-02

我制作了一个非常非常小的演示应用程序,在运行 Android 版本 6.0.1 的 Nexus 5 上重现该错误。该应用程序位于 github 上:https://github.com/lexi-sr/LayerPermission

我最近添加了 2 个提交,其中它针对 API 23 并在运行时请求权限,但它仍然不起作用。

在这 2 个提交中,它具有以下设置:

  • 目标 SDK:23
  • 编译层0.20.3

1) 在提交“删除层依赖项允许弹出对话框请求权限...”中,它没有层依赖项:方法ActivityCompat.requestPermissions打开一个请求联系人权限的对话框,以及一个日志语句onRequestPermissionsResult方法记录已授予权限。

2)在提交“请求权限不起作用”中,它确实具有层依赖性: ActivityCompat.requestPermissions不会打开任何对话框,但会打开一条日志语句onRequestPermissionsResult仍然打印,记录它没有权限。

添加层依赖关系似乎会抑制在运行时请求权限的能力。为什么会发生这种情况?


幸运的是,图层支持团队能够帮助我解决这个问题。它解决了我在演示应用程序中的问题(针对 SDK 23)and我的真实应用程序(针对 SDK 22,以避免在运行时请求权限)。我把之后tools:node="replace"进入我的 GET_ACCOUNTS 的使用权限行,弹出对话框能够出现并在演示应用程序中授予权限,并且在针对 SDK 22 的真实应用程序中不再缺少该权限。

以下是 Layer 支持团队的详细解释:

Layer SDK 使用以下方式请求 GET_ACCOUNTS 权限: maxSdkVersion 为 18。 看来,当清单获取时 合并后,这将覆盖清单中的权限请求, 因此 19 岁以上的人无需申请许可。您可以尝试附加吗 tools:node="replace" 到应用程序清单中的权限?这 该行应读为:

<uses-permission android:name="android.permission.GET_ACCOUNTS" tools:node="replace" />

请参阅此处的 maxSdkVersion 文档:http://developer.android.com/guide/topics/manifest/uses-permission-element.html

请参阅此处的工具:节点文档:http://tools.android.com/tech-docs/new-build-system/user-guide/manifest-merger#TOC-tools:node-markers

Peter

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 中添加 Layer 库依赖项会抑制 requestPermissions 对话框 的相关文章

随机推荐