我已在 BaseActivity 上通过 onResume()管理了运行时权限。当我启动我的应用程序时,会打开一个运行时权限对话框而不对对话框执行任何操作,我会转到应用程序设置并对权限执行操作。现在当我再次恢复应用程序时,仍然显示上一个对话框。
因此,如果我已经允许该权限,那么我应该如何处理该对话框,因为它仍在显示?
答案 0 :(得分:3)
这是一个Android操作系统问题。我也面临同样的问题并发现操作系统问题。
答案 1 :(得分:1)
在onResume方法中请求权限不是一个好主意。您应该只在需要时请求权限。但是,您可以使用此代码来解决问题:
boolean permissionRequested = false;
@Override
protected void onResume() {
super.onResume();
if (Build.VERSION.SDK_INT > 22) {
if (getPackageManager().checkPermission(Manifest.permission.CAMERA, getPackageName()) == PackageManager.PERMISSION_GRANTED) {
permissionRequested = false;
Toast.makeText(this, "Permission Granted", Toast.LENGTH_SHORT).show();
} else {
if (permissionRequested) {
permissionRequested = false;
Toast.makeText(this, "Permission Denied", Toast.LENGTH_SHORT).show();
} else {
permissionRequested = true;
requestPermissions(new String[] { Manifest.permission.CAMERA }, 100);
}
}
} else {
Toast.makeText(this, "Permission Granted", Toast.LENGTH_SHORT).show();
}
}
答案 2 :(得分:-1)
检查您是否拥有onResume的权限 - 如果您收到否定结果,则仅显示该对话框