#android #android_service
Пишу сервис который должен получать название активного приложения, и сохранять его,
как это можно реализовать ?
Ответы
Ответ 1
На самом деле есть решение, работающее с 4 и до 6 версии включительно. На 7 не проверял. Оно основано на чтении /dev/proc псевдодиректории. Там достаточно информации для определения процесса. Но вручную работать сложновато, поэтому можно использовать уже написанную библиотеку https://github.com/jaredrummler/AndroidProcesses Объединив с ответом выше вы получите универсальное решение.Ответ 2
До Android 5 (Lollipop, API 21) можно было сделать так: final ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); final ListrecentTasks = activityManager.getRunningTasks(Integer.MAX_VALUE); for (int i = 0; i < recentTasks.size(); i++) { Log.d("Executed app", "Application executed : " +recentTasks.get(i).baseActivity.toShortString()+ "\t\t ID: "+recentTasks.get(i).id+""); } Начиная с Android 5 этот метод вернет только ваше приложение и launcher. Насколько мне известно, из соображений безопасности и приватности, в Android 5 больше никак не получится. Логично, что приложение не должно знать, какие приложения у меня запущены.
Комментариев нет:
Отправить комментарий