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

How do I show permissions rationale for multiple permissions request?

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

关于如何提出请求以及如何说明理由的代码示例有很多。 This link here shows a simple methodology as do these: , Android M request permission non activity

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

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

     ActivityCompat.requestPermissions(activity, permissionsStringArray, 123);

并尝试一次请求多个,但如果它们 return 为真,我就无法显示对所需的解释来自:

     ActivityCompat.shouldShowRequestPermissionRationale(activity,
                    currentPerm.getPermissionManifestName()

有没有人对我如何显示一个包含多个基本原理的对话有任何建议,而不是一次只显示一个?

我推荐这个开源软件。

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