Страницы

Поиск по вопросам

понедельник, 24 февраля 2020 г.

Можно ли получить название активного приложения?

#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 List recentTasks = 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 больше никак не получится. Логично, что приложение не должно знать, какие приложения у меня запущены.

Комментариев нет:

Отправить комментарий