Как узнать, какое приложение открывается при входящем звонке?

Я использую широковещательный приемник, чтобы получать уведомления при входящем звонке. Теперь мне нужно знать, открывается ли конкретное приложение, например, Facebook, когда звонок выполняет мою работу.

Это возможно?

1 ответ

Решение

После получения BroadcastReceiver, проверьте текущую активность на экране, кроме Home экран.

Чтобы проверить активность на экране, получите верхнюю активность, используя ActivityManagerпутем запуска списка задач.

Например:

ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(2);
ComponentName componentInfo = taskInfo.get(1).topActivity;
String callHandlerPackageName = componentInfo.getPackageName();

Log.d("Call_incoming", "Call_receiver_app ::" + callHandlerPackageName);

Вам понадобится следующее разрешение в вашем манифесте:

<uses-permission android:name="android.permission.GET_TASKS"/>

Примечание: вышеуказанная функциональность устарела в Marshmallow версия. Я просто привожу здесь пример по фрагменту кода.

Другие вопросы по тегам