Android6.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;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容