作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我知道如何一次请求多个权限。例如:
final private int REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS = 124;
private void insertDummyContactWrapper() {
List<String> permissionsNeeded = new ArrayList<String>();
final List<String> permissionsList = new ArrayList<String>();
if (!addPermission(permissionsList, Manifest.permission.ACCESS_FINE_LOCATION))
permissionsNeeded.add("GPS");
if (!addPermission(permissionsList, Manifest.permission.READ_CONTACTS))
permissionsNeeded.add("Read Contacts");
if (!addPermission(permissionsList, Manifest.permission.WRITE_CONTACTS))
permissionsNeeded.add("Write Contacts");
if (permissionsList.size() > 0) {
if (permissionsNeeded.size() > 0) {
// Need Rationale
String message = "You need to grant access to " + permissionsNeeded.get(0);
for (int i = 1; i < permissionsNeeded.size(); i++)
message = message + ", " + permissionsNeeded.get(i);
showMessageOKCancel(message,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
requestPermissions(permissionsList.toArray(new String[permissionsList.size()]),
REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
}
});
return;
}
requestPermissions(permissionsList.toArray(new String[permissionsList.size()]),
REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS);
return;
}
insertDummyContact();
}
private boolean addPermission(List<String> permissionsList, String permission) {
if (checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) {
permissionsList.add(permission);
// Check for Rationale Option
if (!shouldShowRequestPermissionRationale(permission))
return false;
}
return true;
}
我如何用 PermissionsDispatcher 做到这一点?
最佳答案
很简单:
@NeedsPermission({Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.READ_CONTACTS,Manifest.permission.WRITE_CONTACTS})
void insertDummyContact(){...}
关于Android - 如何使用 PermissionsDispatcher 一次请求多个权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37658128/
我知道如何一次请求多个权限。例如: final private int REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS = 124; private void insert
我使用 hotchemi PermissionsDispatcher 来检查权限。它非常适合 API >= 23。但是当我尝试在具有 API 16 的设备上使用相同的代码时,我收到致命异常 java.
对于一个权限,我可以在 java 和 kotlin 中使用 permissionsdispatcher - 但是当涉及到多个权限时,如下所示: @NeedsPermission({Manifest.p
我看到了一篇 Cheese Factory 文章(谷歌搜索,因为我不能发布超过 2 个链接和我的声誉),其中解释了如何处理 Android Marshmallow 的新权限系统。在文章中,他引用了 P
我是一名优秀的程序员,十分优秀!