如何显示多个权限请求的权限理由?

3
我正在使用Android API 25,并需要在应用程序中进行权限请求。
有大量的代码示例可以用来请求权限以及显示请求原理。这里的链接展示了一个简单的方法,这些也是一样:Android M Request Multiple permission at a single time, Android M request permission non activity 我遇到的问题是,我需要同时请求多个权限(位置、写入存储访问和通讯录),而ActivityCompatApi23.shouldShowRequestPermissionRationale源代码只接受单个权限的字符串而不是多个权限的数组。(来源:android.support.v4.app.ActivityCompat)
因此,在我的代码中,我可以这样做:
     ActivityCompat.requestPermissions(activity, permissionsStringArray, 123);

尝试同时请求多个,但如果它们从以下返回true,则无法显示所需的解释:

     ActivityCompat.shouldShowRequestPermissionRationale(activity,
                    currentPerm.getPermissionManifestName()

有没有任何建议,可以让我显示一个包含多个理由的对话框,而不是一次只显示一个?


只是为了澄清一下,您想显示一个对话框,其中包含多个权限,并为每个权限提供解释? - Mehmet K
1个回答

0

我推荐这个开源项目。

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();
    }

这让我找到了正确的方向,但最终我还是写了自己的代码。看起来答案是不能同时处理多个,只能将它们发送到设置中。 - user7507065

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接