Java 类android.support.v4.app.AppOpsManagerCompat 实例源码

项目:letv    文件:PermissionChecker.java   
public static int checkPermission(@NonNull Context context, @NonNull String permission, int pid, int uid, String packageName) {
    if (context.checkPermission(permission, pid, uid) == -1) {
        return -1;
    }
    String op = AppOpsManagerCompat.permissionToOp(permission);
    if (op == null) {
        return 0;
    }
    if (packageName == null) {
        String[] packageNames = context.getPackageManager().getPackagesForUid(uid);
        if (packageNames == null || packageNames.length <= 0) {
            return -1;
        }
        packageName = packageNames[0];
    }
    return AppOpsManagerCompat.noteProxyOp(context, op, packageName) != 0 ? -2 : 0;
}
项目:boohee_v5.6    文件:PermissionChecker.java   
public static int checkPermission(@NonNull Context context, @NonNull String permission, int pid, int uid, String packageName) {
    if (context.checkPermission(permission, pid, uid) == -1) {
        return -1;
    }
    String op = AppOpsManagerCompat.permissionToOp(permission);
    if (op == null) {
        return 0;
    }
    if (packageName == null) {
        String[] packageNames = context.getPackageManager().getPackagesForUid(uid);
        if (packageNames == null || packageNames.length <= 0) {
            return -1;
        }
        packageName = packageNames[0];
    }
    return AppOpsManagerCompat.noteProxyOp(context, op, packageName) != 0 ? -2 : 0;
}
项目:AgentWeb    文件:AgentWebUtils.java   
static boolean hasPermission(@NonNull Context context, @NonNull List<String> permissions) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return true;
    for (String permission : permissions) {
        int result = ContextCompat.checkSelfPermission(context, permission);
        if (result == PackageManager.PERMISSION_DENIED) return false;

        String op = AppOpsManagerCompat.permissionToOp(permission);
        if (TextUtils.isEmpty(op)) continue;
        result = AppOpsManagerCompat.noteProxyOp(context, op, context.getPackageName());
        if (result != AppOpsManagerCompat.MODE_ALLOWED) return false;

    }
    return true;
}
项目:AndPermission    文件:AndPermission.java   
/**
 * Check if the calling context has a set of permissions.
 *
 * @param context     {@link Context}.
 * @param permissions one or more permissions.
 * @return true, other wise is false.
 */
public static boolean hasPermission(@NonNull Context context, @NonNull List<String> permissions) {
    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) return true;
    for (String permission : permissions) {
        int result = ContextCompat.checkSelfPermission(context, permission);
        if (result == PackageManager.PERMISSION_DENIED) return false;

        String op = AppOpsManagerCompat.permissionToOp(permission);
        if (TextUtils.isEmpty(op)) continue;
        result = AppOpsManagerCompat.noteProxyOp(context, op, context.getPackageName());
        if (result != AppOpsManagerCompat.MODE_ALLOWED) return false;

    }
    return true;
}
项目:PermissionsDispatcher    文件:PermissionUtils.java   
private static boolean hasSelfPermissionForXiaomi(Context context, String permission) {
    String permissionToOp = AppOpsManagerCompat.permissionToOp(permission);
    if (permissionToOp == null) {
        // in case of normal permissions(e.g. INTERNET)
        return true;
    }
    int noteOp = AppOpsManagerCompat.noteOp(context, permissionToOp, Process.myUid(), context.getPackageName());
    return noteOp == AppOpsManagerCompat.MODE_ALLOWED && checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED;
}