Ошибка в Android NDK сделать программу не может найти

Что касается «2. Как мое фоновое приложение может знать, что приложение в настоящее время работает на переднем плане».

НЕ используйте метод getRunningAppProcesses(), так как это возвращает все виды мусора из моего опыта, и вы получите несколько результатов, которые имеют RunningAppProcessInfo.IMPORTANCE_FOREGROUND. Используйте getRunningTasks() вместо

. Это код, который я использую в своей службе, чтобы идентифицировать текущее приложение переднего плана, его очень просто:

ActivityManager am = (ActivityManager) AppService.this.getSystemService(ACTIVITY_SERVICE);
// The first in the list of RunningTasks is always the foreground task.
RunningTaskInfo foregroundTaskInfo = am.getRunningTasks(1).get(0);

Thats it, тогда вы можете легко получить доступ сведения о приложении / деятельности переднего плана:

String foregroundTaskPackageName = foregroundTaskInfo .topActivity.getPackageName();
PackageManager pm = AppService.this.getPackageManager();
PackageInfo foregroundAppPackageInfo = pm.getPackageInfo(foregroundTaskPackageName, 0);
String foregroundTaskAppName = foregroundAppPackageInfo.applicationInfo.loadLabel(pm).toString();

Для этого требуется дополнительное разрешение в манифесте активности и прекрасно работает.

<uses-permission android:name="android.permission.GET_TASKS" />
16
задан halfer 13 April 2018 в 10:02
поделиться