Я прошел через этот question и этот question. Но с помощью этого library теперь я могу получить список задач переднего плана, используя следующий код.Android 5.0+ getRunningTasks устарел
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { //For versions less than lollipop
ActivityManager am = ((ActivityManager) getSystemService(ACTIVITY_SERVICE));
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(5);
top = taskInfo.get(0).topActivity.getPackageName();
Log.v(TAG, "top app = " + top);
}else{ //For versions Lollipop and above
List<AndroidAppProcess> processes = ProcessManager.getRunningForegroundApps(getApplicationContext());
Collections.sort(processes, new ProcessManager.ProcessComparator());
for (AndroidAppProcess process : processes) {
if (process.foreground) {
top =process.name;
Log.v(TAG,top);
}
}
}
Здесь для Android 5.0+ я получаю все работает на переднем плане процесс, но я не в состоянии сделать вывод, который приложение является главным приложением.
Выход для выше кода (еще условия)
com.android.vending
com.google.android.gms
com.google.android.googlequicksearchbox
com.google.android.videos
com.test1
com.naag.testing
com.example.android.gettask
Вот мой топ приложение com.google.android.videos
Теперь, как решить com.google.android.videos
является топ приложение из приведенного выше списка программно?
Как работает приложение applocker (или аналогичное для applocker) на 5.0+? Надеюсь, кто-то поможет кому-то помочь.
Вы должны установить критерии относительно того, что делает Process Top процесс, как процессор, память использование и т. д., я думаю, вам придется перебирать «statm», предоставляемый каждым из процессов, чтобы найти это. – asgs