本文主要讲述读写、通话、位置以及悬浮窗权限申请 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); } } }