以下のコードを使用して、アプリケーションの使用アクセスが有効かどうかを確認しています。上記のコードAppOpsManager.OPSTR_GET_USAGE_STATSは常に値0を返します(AppOpsManager.MODE_ALLOWED)
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;
}
常に使用方法アクセス許可が自分のアプリケーションのために無効になっているにもかかわらず、「真」の値を返します。
IMP注記:これは、バージョン5.1.1のLenovo P1a42デバイスでのみ発生します。他のすべてのデバイスでは、公式のリンクに記載されているように動作しますhttp://developer.android.com/reference/android/app/AppOpsManager.html
私のコードには何か問題がありますか?
この問題はLGデバイスでも発生しています。:-( – Sharas