Является ли 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);

person MuayThai    schedule 25.09.2015    source источник


Ответы (1)


android.permission.PACKAGE_USAGE_STATS может предоставляться только системным действием, и это действие может присутствовать не на всех устройствах. Производители, которые, как известно, удалили его по крайней мере с некоторых своих устройств, включают Samsung и LG.

Действие намерения для запуска системной активности — Settings.ACTION_USAGE_ACCESS_SETTINGS. Убедитесь, что Intent#resolveActivity(...) возвращает ненулевое значение перед попыткой запуска.

person Kevin Krumwiede    schedule 25.09.2015
comment
Я могу использовать PACKAGE_USAGE_STATS на всех устройствах, которые я пробовал до сих пор. Многие устройства, на которых нет Settings.ACTION_USAGE_SETTINGS, все еще поддерживают это, на самом деле это старые устройства 2.3.6, в которых я видел, что Settings.ACTION_USAGE_SETTINGS удалены. Так что не знаете, почему доступ к настройкам связан здесь? - person MuayThai; 28.09.2015
comment
@MuayThai Это не было удалено со старых устройств. API статистики использования не существовало до Android 5.0. И, насколько мне известно, действие, запущенное Settings.ACTION_USAGE_ACCESS SETTINGS, — единственный способ предоставить android.permission.PACKAGE_USAGE_STATS на любом устройстве. - person Kevin Krumwiede; 28.09.2015