String ver = MiuiUtils.getSystemProperty("ro.miui.ui.version.name");
if("V6".equals(ver)||"V7".equals(ver)){
int i = MiuiUtils.checkOp(mContext,24);
if(i==1){
//没有权限
}
}
/**
* 判断系统是否为miui
* @param propName
* @return
*/
public static String getSystemProperty(String propName){
String line;
BufferedReader input = null;
try {
Process p = Runtime.getRuntime().exec("getprop " + propName);
input = new BufferedReader(new InputStreamReader(p.getInputStream()), 1024);
line = input.readLine();
input.close();
}
catch (IOException ex) {
return null;
}
finally {
if(input != null) {
try {
input.close();
}
catch (IOException e) {
}
}
}
return line;
}
/**
返回 0 就代表有权限,1代表没有权限,-1函数出错啦
*/
public static int checkOp(Context context, int op){
final int version = Build.VERSION.SDK_INT;
if (version >= 19){
Object object = context.getSystemService("appops");
Class c = object.getClass();
try {
Class[] cArg = new Class[3];
cArg[0] = int.class;
cArg[1] = int.class;
cArg[2] = String.class;
Method lMethod = c.getDeclaredMethod("checkOp", cArg);
return (Integer) lMethod.invoke(object, op, Binder.getCallingUid(), context.getPackageName());
} catch(NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
return -1;
}
public static void openMiuiPermissionActivity(Context context) {
Intent intent = new Intent("miui.intent.action.APP_PERM_EDITOR");
if (true) {
intent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.AppPermissionsEditorActivity");
intent.putExtra("extra_pkgname", context.getPackageName());
}
if (isIntentAvailable(context, intent)) {
if (context instanceof Activity) {
Activity a = (Activity) context;
a.startActivityForResult(intent, 24);
}
}
}
private static boolean isIntentAvailable(Context context, Intent intent) {
if (intent == null) return false;
return context.getPackageManager().queryIntentActivities(intent, PackageManager.GET_ACTIVITIES).size() > 0;
}
“`