Как узнать, какое приложение открывается при входящем звонке?
Я использую широковещательный приемник, чтобы получать уведомления при входящем звонке. Теперь мне нужно знать, открывается ли конкретное приложение, например, 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
версия. Я просто привожу здесь пример по фрагменту кода.