Intereting Posts
Получить объект IntentSender для метода createChooser в Android Уведомление Android для воспроизведения только звука SoundCloud HTML5 Widget API – игра не работает в Chrome для Android Как использовать центр представления как контрольную точку внутри RelativeLayout Сохранение и чтение растровых изображений / изображений из внутренней памяти в Android Любые библиотеки pdf417 для SDK для Android? Невозможно переопределить стиль switchStyle и NumberPicker в Android Android External App Install (на SD-карте), перезагрузите аварийные сигналы будильника при повторном монтировании через приемник FileNotFoundException: res / drawable-xhdpi-v4 / foo.png только в журналах сбоев в Play Маркете Как узнать, активен ли звонок Skype на Android? Android – Не удалось конвертировать в формат Dalvik: невозможно выполнить dex: Java куча пространства Измените тему TimePickerDialog на использование AppTheme Какова цель « Accent English» (zz-ZZ) в Android? Java.lang.NumberFormatException: недопустимый int: "5" Съемка и геотаг

Приложение Android-Telephony, которое фокусируется на входящих вызовах

Я разрабатываю специальное приложение для телефонии, которое может принимать вызовы. Использование этого кода для обработки входящего вызова https://code.google.com/p/auto-answer/source/browse/trunk/src/com/everysoft/autoanswer/AutoAnswerIntentService.java

К сожалению, мое приложение теряет фокус на входящем звонке.

Это было частичное решение для исходящих вызовов Android-телефона, которое фокусируется на исходящем и входящем телефоне.

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

Я предполагаю, что это может включать загрузку и изменение исходного кода, поскольку простое обращение к SDK мало контролирует встроенное приложение для телефона.

Поскольку ссылка, сделанная вами об исходящих звонках, приемлема, вы можете поместить мероприятие перед экраном входящих вызовов вскоре после его отображения. Трудность в этом заключается в том, что состояние вызова изменится на «RINGING», а затем «OFFHOOK», но телефон не отображает InCallScreen, когда они транслируются.

Как и сообщение, на которое вы ссылаетесь, это решение фактически не встраивает функцию телефона в приложение (например, веб-просмотр для веб-браузера), а скорее размещает активность перед InCallScreen вскоре после ее отображения.

Для входящих звонков вам необходимо отложить запуск своей деятельности, например, в этом сообщении:

Android – настраиваемый новый экран входящих вызовов

Вы можете поместить что-нибудь на экран в точку, сложная часть определяет время задержки, чтобы оно соответствовало вашим потребностям (достаточно медленно, чтобы у InCallScreen появилась возможность запуска, но достаточно быстро, чтобы быть минимально разрушительной).

Кроме того, даже расширение AOSP не поможет, если у вас нет доступа к каждому физическому устройству, где это будет использоваться для их root или установки на них пользовательской сборки. Доступ к функциям PhoneApp недоступен для не-системных приложений (пакет com.android.phone).

Упомяните нижнего широковещательного приемника в файле manifest.xml.

<receiver android:name="com.example.incomingcall.IncomingCallReceiver" > <intent-filter> <action android:name="android.intent.action.PHONE_STATE" /> </intent-filter> </receiver> 

IncomingCallReceiver.java:

 public class IncomingCallReceiver extends BroadcastReceiver{ public void onReceive(Context context, Intent intent) { Bundle extras = intent.getExtras(); if (extras != null) { String state = extras.getString(TelephonyManager.EXTRA_STATE); if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) { Thread thread = new Thread(){ private int sleepTime = 400; @Override public void run() { super.run(); try { int wait_Time = 0; while (wait_Time < sleepTime ) { sleep(100); wait_Time += 100; } }catch (Exception e) { Toast.makeText(context, "Error Occured Because:" + e.getMessage(), Toast.LENGTH_SHORT).show(); } context.startActivity(new Intent(context,CustomActivity.class) .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)); } }; thread.run(); } } } }