我怎样才能重新申请许可相机

问题描述:

我使用这些代码我怎样才能重新申请许可相机

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(); 
    } 
}