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

时间:2016-05-03 16:46:40

标签: android permissions

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

我最近添加了两个提交,其中的目标是API 23并在运行时请求权限,但它仍然无效。

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

  • 目标SDK:23
  • 编译层0.20.3

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

2)在提交"请求权限不起作用"它有层依赖性的地方: ActivityCompat.requestPermissions不会打开任何对话框,但onRequestPermissionsResult中的日志语句仍会打印,记录它没有权限。

似乎添加图层依赖项会抑制在运行时请求权限的能力。为什么会这样?

1 个答案:

答案 0 :(得分:2)

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

以下是Layer支持团队的详细说明:

  

图层SDK使用a请求GET_ACCOUNTS权限   maxSdkVersion of 18.看来当清单出现时   合并这会覆盖清单中的权限请求,   因此不要求19岁以上的许可。你可以尝试追加吗?   工具:节点="替换"你的应用程序的清单中的权限?该   该行应为:

<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

     

彼得