美文网首页
Android6.0以下检查是否有电话等权限

Android6.0以下检查是否有电话等权限

作者: 欠儿不登 | 来源:发表于2022-03-13 18:28 被阅读0次

    检查是否有权限

    6.0及以上检查方法

    PackageManager.checkPermission(String permName, String pkgName)

    ContextCompat.checkSelfPermission(Context context, String permission)

    6.0以下检查方法

    AppOpsManager.checkOp(String op, int uid, String packageName)

        public static boolean checkCallPhonePermission(Context context){
            try {
                AppOpsManager manager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
                Class<?> clazz = AppOpsManager.class;
                Field sysAlert = clazz.getField("OP_CALL_PHONE");
                int op = sysAlert.getInt(manager);
                Method method = clazz.getDeclaredMethod("checkOp", int.class, int.class, String.class);
                int mode = (int) method.invoke(manager, op, Binder.getCallingUid(), context.getPackageName());
                return AppOpsManager.MODE_ALLOWED == mode;
            } catch (Exception ex) {
                ex.printStackTrace();
            }
            return true;
        }
    

    相关文章

      网友评论

          本文标题:Android6.0以下检查是否有电话等权限

          本文链接:https://www.haomeiwen.com/subject/akhmchtx.html