/**
* 判断权限集合
*
* @param permissions
* @return {true} 已经授权 {false}未授权
*/
public static boolean lacksPermissions(Activity mActivity, String... permissions) {
for (String permission : permissions) {
if (lacksPermission(mActivity, permission)) {
if (lackPermission == null) {
lackPermission = new ArrayList<>();
}
lackPermission.add(permission);
}
}
if (lackPermission != null && lackPermission.size() > 0) {
return false;
}
return true;
}
/*判断是否缺少权限
* @return {true} 未授权 {false}已经授权
*/
public static boolean lacksPermission(Activity mActivity, String permission) {
return ContextCompat.checkSelfPermission(mActivity, permission) == PackageManager.PERMISSION_DENIED;
}
public static boolean requestPermissionF(Activity mActivity,String permission) {
// 拒绝授权且勾选了不再提示
if (lacksPermission(mActivity,permission)&&!ActivityCompat.shouldShowRequestPermissionRationale(mActivity,permission)){
return true;
} else {
return false;
}
}
public static void RequesetPermission(Activity mActivity,String[] permissions) {
lacksPermissions(mActivity, permissions);
if (lackPermission != null && !lackPermission.isEmpty()) {
String[] lacks = new String[lackPermission.size()];
for (int i = 0; i < lackPermission.size(); i++) {
lacks[i] = lackPermission.get(i);
}
lackPermission.clear();
VLog.i("请求权限:"+lacks.toString());
ActivityCompat.requestPermissions(mActivity, lacks, 0);
}
}
/**
* 获取应用详情页面intent
*
* @return
*/
public static void getAppDetailSettingIntent(Activity mActivity) {
try {
if (mActivity == null) {
return;
}
Intent localIntent = new Intent();
localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
if (Build.VERSION.SDK_INT >= 9) {
localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
localIntent.setData(Uri.fromParts("package", mActivity.getPackageName(), null));
} else if (Build.VERSION.SDK_INT <= 8) {
localIntent.setAction(Intent.ACTION_VIEW);
localIntent.setClassName("com.android.settings",
"com.android.settings.InstalledAppDetails");
localIntent.putExtra("com.android.settings.ApplicationPkgName",
mActivity.getPackageName());
}
mActivity.startActivity(localIntent);
} catch (Exception e) {
VLog.e(e);
}
}
6.0动态申请权限问题
最新推荐文章于 2022-08-02 21:44:27 发布