android 申请、检查权限

首先检查所需要申请的权限是否已经拥有。

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()方法,效果如图