Я ищу способ получить название деятельности в Android Lollipop.Получить название деятельности в Android
То, что я имею в виду, это не имя процесса или даже имя приложения, а заголовок, присвоенный активности при его открытии. Например, когда вы переходите к http://www.google.com/ в Chrome, название изменяется с «Chrome» на «Google», что можно увидеть, когда вы нажмете кнопку последних приложений, и мне нужно что-то, что возвращает слово «Google».
Ниже приведена моя ужасная попытка перебирать текущие приложения и пытаться найти эту информацию.
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses();
for (int i = 0; i < runningAppProcessInfo.size(); i++) {
PackageManager pm = context.getPackageManager();
ApplicationInfo info = null;
try {
info = pm.getApplicationInfo(runningAppProcessInfo.get(i).processName, 0);
Log.i("DEBUG_LABEL", "Process Name: " + runningAppProcessInfo.get(i).processName);
Log.i("DEBUG_LABEL", "App Label: " + pm.getApplicationLabel(info).toString());
if (info.className != null) {
Log.i("DEBUG_LABEL", "Info's package and class name: " + info.packageName + ", " + info.className);
ComponentName cName = new ComponentName(info.packageName, info.className);
ActivityInfo activityInfo = pm.getActivityInfo(cName, PackageManager.GET_META_DATA);
Log.i("DEBUG_LABEL", "Activity Label: " + activityInfo.loadLabel(pm));
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
Это приложение или ВСЕ приложения? – VM4
Это должно работать для всех приложений (в идеале) –
http://stackoverflow.com/questions/11391451/list-out-installed-running-applications-in-android-programmatically – VM4