如何显示多个权限请求的权限理由?
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();
}
我正在与 Android API 25 合作,需要在应用程序中提出权限请求。
关于如何提出请求以及如何说明理由的代码示例有很多。 This link here shows a simple methodology as do these:
我遇到的问题是我一次请求多个权限(位置、写入存储访问权限和联系人)并且 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();
}