android AppOpsManager请求权限

现在android6.0+采用了动态权限,但是如果是低于这个版本呢?特别是国内rom,老早就有了权限管理。这个时候,如果是android4.4+可以采用AppOpsManager。如果比这个版本还低的,那我也暂时没有什么比较好的解决方案。

AppOpsManager的用法大致如下:

public static final int MODE_ALLOWED = 0;
public static final int MODE_IGNORED = 1;
public static final int MODE_ERRORED = 2;
public static final int MODE_DEFAULT = 3;

/**
 * 判断权限
 * 本方法仅适用于api>=19 && api<23
 * @param context
 * @param op {@link AppOpsManager}
 * @return
 */
@RequiresApi(api = VERSION_CODES.KITKAT)
public static int checkOp(Context context, String op) {
    try {
        AppOpsManager manager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
        return manager.checkOp(op, Binder.getCallingUid(), context.getPackageName());
    } catch (Exception e) {
        Logger.w(TAG, e);
    }
    return MODE_DEFAULT;
}

你可能感兴趣的:(android AppOpsManager请求权限)