我怎样才能重新申请许可相机
问题描述:
我使用这些代码我怎样才能重新申请许可相机
int PERMISSION_ALL = 1;
String[] PERMISSIONS = {CAMERA, RECORD_AUDIO ,Manifest.permission.WRITE_EXTERNAL_STORAGE, ACCESS_FINE_LOCATION};
if(!hasPermissions(this, PERMISSIONS)){
ActivityCompat.requestPermissions(this, PERMISSIONS, PERMISSION_ALL);
}
和
public static boolean hasPermissions(Context context, String... permissions) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}
我的应用程序只需要当摄像机移动到下一个活动,编写存储和记录音频权限被提供。如果任何请求被拒绝,我如何重新请求。
答
试试这个
String permission = Manifest.permission.CAMERA;
int grant = ContextCompat.checkSelfPermission(this, permission);
if (grant != PackageManager.PERMISSION_GRANTED) {
String[] permission_list = new String[1];
permission_list[0] = permission;
ActivityCompat.requestPermissions(this, permission_list, 1);
}
,并使用onRequestPermissionsResult()
方法来处理许可结果是用户授予权限或没有
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 1) {
Toast.makeText(this, "Camera Permission granted", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Camera Permission granted", Toast.LENGTH_SHORT).show();
}
}