【发布时间】:2016-04-06 11:11:23
【问题描述】:
我正在使用下面的代码来检查我的应用程序是否启用了使用访问权限。
try {
PackageManager packageManager = context.getPackageManager();
ApplicationInfo applicationInfo = packageManager.getApplicationInfo(context.getPackageName(), 0);
AppOpsManager appOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
int mode = appOpsManager.checkOpNoThrow(AppOpsManager.OPSTR_GET_USAGE_STATS, applicationInfo.uid, applicationInfo.packageName);
return (mode == AppOpsManager.MODE_ALLOWED);
} catch (PackageManager.NameNotFoundException e) {
return false;
}
即使我的应用程序禁用了使用访问权限,上述代码也始终返回“true”值。
IMP 注意:这只发生在操作系统版本为 5.1.1 的 Lenovo P1a42 设备中。在所有其他设备中,它的工作原理如官方链接 http://developer.android.com/reference/android/app/AppOpsManager.html
中所述设备有问题还是我的代码中缺少任何条件?
【问题讨论】:
标签: android