2016-07-25 57 views
3

从android棒棒糖中,想要访问其他应用程序的使用的应用程序需要安全启用。我不想通过设置 - >安全 - >使用访问权限的应用程序手动启用它,而是想通过编程方式启用它。我无法在任何地方找到明确的答案。任何人都可以帮我解决这个问题吗?如何让您的应用程序具有使用权限?

回答

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); 
     } 
    } 
相关问题