【发布时间】:2016-03-04 00:11:42
【问题描述】:
我想授予权限Manifest.permission.MANAGE_DOCUMENTS,但是当我运行应用程序时,应该会出现权限对话框,但它没有。这是我的代码:
int hasCameraPermission = ContextCompat.checkSelfPermission(MemoryDetail.this, Manifest.permission.MANAGE_DOCUMENTS);
if (hasCameraPermission != PackageManager.PERMISSION_GRANTED) {
if (!ActivityCompat.shouldShowRequestPermissionRationale(MemoryDetail.this, Manifest.permission.MANAGE_DOCUMENTS)) {
showDialogMessage("Need use permission: MANAGE_DOCUMENTS", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[] {Manifest.permission.MANAGE_DOCUMENTS}, Database.PICK_PICTURE);
}
}
});
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{Manifest.permission.MANAGE_DOCUMENTS}, Database.PICK_PICTURE);
}
return;
}
【问题讨论】:
-
您是否检查过您是否可以执行需要该权限的任务?如果您已经拥有权限,则不会出现任何对话框。
-
我已经在 Manifest 中声明了许可。如果我使用其他权限,例如:CAMERA、CONTACTS... 它工作得很好。如果我不使用此权限,则会出现错误: java.lang.SecurityException: Permission Denial: opening provider com.android.externalstorage.ExternalStorageProvider from ProcessRecord{87433d2 4941:com.devil.tetmemory/u0a86} (pid=4941, uid=10086) 需要 android.permission.MANAGE_DOCUMENTS 或 android.permission.MANAGE_DOCUMENTS。
标签: android android-permissions