2016-07-25 24 views
3

アンドロイドのロリポップから、他のアプリの利用にアクセスしたいアプリはセキュリティで有効にする必要があります。 「設定」 - >「セキュリティ」 - >「アプリケーション」を手動で手動で有効にするのではなく、プログラムで有効にする必要があります。私はどこでも明確な答えを見つけることができません。誰かが私にこの1つを助けることができますか?アプリにアクセスを許可するにはどうすればよいですか?

答えて

1

あなたの活動でこれを試してみてください:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if (!isAccessGranted()) { 
     Intent intent = new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS); 
     startActivity(intent); 
    } 
} 


private boolean isAccessGranted() { 
    try { 
     PackageManager packageManager = getPackageManager(); 
     ApplicationInfo applicationInfo = packageManager.getApplicationInfo(getPackageName(), 0); 
     AppOpsManager appOpsManager = (AppOpsManager) 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; 
    } 
} 
0

私は助けを願って、このコードを試してみてください、あなた

if (Build.VERSION.SDK_INT >= 21) { 
     UsageStatsManager mUsageStatsManager = (UsageStatsManager) context.getSystemService(Context.USAGE_STATS_SERVICE); 
     long time = System.currentTimeMillis(); 
     List stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000 * 10, time); 

     if (stats == null || stats.isEmpty()) { 
      Intent intent = new Intent(); 
      intent.setAction(Settings.ACTION_USAGE_ACCESS_SETTINGS); 
      context.startActivity(intent); 
     } 
    } 
関連する問題