项目: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;
}
public static int checkPermission(@NonNull Context context,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,context.getPackageName());
if (result != AppOpsManagerCompat.MODE_ALLOWED) return false;
}
return true;
}
/**
* 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,context.getPackageName());
if (result != AppOpsManagerCompat.MODE_ALLOWED) return false;
}
return true;
}
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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。