首先检查所需要申请的权限是否已经拥有。
private final int WRITE_PERMISSION_REQ_CODE = 110;
private boolean checkRequestPermissions() { if (Build.VERSION.SDK_INT >= 23) { List<String> permissions = new ArrayList<>(); if (PackageManager.PERMISSION_GRANTED != ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA)) { permissions.add(Manifest.permission.CAMERA); } if (PackageManager.PERMISSION_GRANTED != ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.ACCESS_COARSE_LOCATION)) { permissions.add(Manifest.permission.ACCESS_COARSE_LOCATION); } if (permissions.size() != 0) { ActivityCompat.requestPermissions(MainActivity.this, (String[]) permissions.toArray(new String[0]), WRITE_PERMISSION_REQ_CODE); return false; } } return true; }
重后重写onRequestPermissionsResult方法,在获取相应的权限后,进行对应的操作@Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { if (requestCode == WRITE_PERMISSION_REQ_CODE) { if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { //获取到权限后执行的方法} } }最后在onCreate的方法中调用checkRequestPermission()方法,效果如图