【问题标题】:How do I show permissions rationale for multiple permissions request?如何显示多个权限请求的权限原理?
【发布时间】:2017-06-19 23:32:23
【问题描述】:

我正在使用 Android API 25,需要在应用程序中提出权限请求。

有大量关于如何提出请求以及如何展示理由的代码示例。 This link here 展示了一个简单的方法,如下所示:Android M Request Multiple permission at a single timeAndroid M request permission non activity

我遇到的问题是我一次请求多个权限(位置、写入存储访问和联系人),而 ActivityCompatApi23.shouldShowRequestPermissionRationale 源代码只接受单个权限的字符串,而不是多个权限的数组。 (来源:android.support.v4.app.ActivityCompat)

所以在我的代码中,我可以这样做:

     ActivityCompat.requestPermissions(activity, permissionsStringArray, 123);

并尝试一次请求多个,但如果它们从以下位置返回 true,我将无法显示所需的解释:

     ActivityCompat.shouldShowRequestPermissionRationale(activity,
                    currentPerm.getPermissionManifestName()

对于如何显示包含多个理由而不是一次一个理由的对话框,是否有人有任何建议?

【问题讨论】:

  • 澄清一下,您想显示一个对话框,具有多个权限,并为每个权限提供解释?

标签: android android-alertdialog android-permissions android-dialog


【解决方案1】:

我推荐这个开源。

https://github.com/ParkSangGwon/TedPermission

您可以简单地使用。例如

private void CheckPermission() {

        new TedPermission(this)
                .setPermissionListener(permissionlistener)
                .setDeniedMessage(getString(R.string.str_permission1))
                .setPermissions(Manifest.permission.CAMERA, android.Manifest.permission.READ_PHONE_STATE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE)
                .check();
    }

【讨论】:

  • 这让我走上了正轨,但我最终还是自己写了。看起来答案是无法为多个完成的,只需将它们发送到设置即可。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-20
  • 2019-09-20
  • 2017-11-07
相关资源
最近更新 更多