2015-09-25 45 views
0

我訪問userstats在以下幾個方面:android.permission.PACKAGE_USAGE_STATS僅適用於系統應用程序?

UsageStatsManager userStatsMgr = (UsageStatsManager)getSystemService("usagestats"); 

List<UsageStats> userStats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_BEST, timeStamp - 1000*200, timeStamp) 

似乎對於工作:

android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP 

,但不知道是否會繼續在新的SDK工作?我確實看到了一些關於使用此權限的警告,但沒有具體說明,所以我想知道限制是什麼?

ActivityManager mgr = (ActivityManager)ctx.getSystemService(Context.ACTIVITY_SERVICE); 
          List<ActivityManager.RunningAppProcessInfo> 
    processes = manager.getRunningAppProcesses(); 
          app=processes.get(0).processName; 

而且還

 ActivityManager actMgr = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
        actMgr.killBackgroundProcesses(process); 

回答

3

android.permission.PACKAGE_USAGE_STATS只能由系統活動發放,活動可能不會出現在所有設備上。已知將其從至少一些設備中移除的製造商包括Samsung和LG。

的意圖行動啓動系統活動是Settings.ACTION_USAGE_ACCESS_SETTINGS。在嘗試啓動它之前檢查Intent#resolveActivity(...)是否返回非空值。

+0

我能夠使用上到目前爲止,我已經嘗試了所有設備的PACKAGE_USAGE_STATS ..沒有Settings.ACTION_USAGE_SETTINGS仍然支持這個其實它在我所見過的設置上了年紀2.3.6設備的設備很多。 ACTION_USAGE_SETTINGS已移除。所以不確定爲什麼達到設置在這裏相關? – MuayThai

+0

@MuayThai它不是從舊設備中「刪除」。 Usage Stats API在Android 5.0之前不存在。而據我所知,通過'Settings.ACTION_USAGE_ACCESS SETTINGS'推出的活動是授予'任何設備上android.permission.PACKAGE_USAGE_STATS'的唯一途徑。 –

相關問題