本文主要讲述读写、通话、位置以及悬浮窗权限申请
private static final int REQUEST_EXTERNAL_STORAGE = 1;
private static String[] PERMISSIONS_STORAGE = {//读写权限集合
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.RECORD_AUDIO,
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION};
private void verifyStoragmissions(Activity activity) {
int permission = ActivityCompat.checkSelfPermission(activity,
"android.permission.RECORD_AUDIO");
int permission1 = ActivityCompat.checkSelfPermission(activity,
"android.permission.READ_EXTERNAL_STORAGE");
int permission2 = ActivityCompat.checkSelfPermission(activity,
"android.permission.WRITE_EXTERNAL_STORAGE");
int permission3 = ActivityCompat.checkSelfPermission(activity,
"android.permission.READ_PHONE_STATE");
int permission4 = ActivityCompat.checkSelfPermission(activity,
"android.permission.ACCESS_COARSE_LOCATION");
int permission5 = ActivityCompat.checkSelfPermission(activity,
"android.permission.ACCESS_FINE_LOCATION");
if (permission != PackageManager.PERMISSION_GRANTED ||
permission1 != PackageManager.PERMISSION_GRANTED ||
permission2 != PackageManager.PERMISSION_GRANTED ||
permission3 != PackageManager.PERMISSION_GRANTED ||
permission4 != PackageManager.PERMISSION_GRANTED ||
permission5 != PackageManager.PERMISSION_GRANTED) {
//判断读写权限是否存在,不在就打开权限
ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE);
}
suspensionPermissions();
}
public void suspensionPermissions(){
if (android.os.Build.VERSION.SDK_INT >= 23){
if (!Settings.canDrawOverlays(this)) {
Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION,
Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, 100);
}
}
}