Intereting Posts
Android java.exe завершен с ненулевым значением выхода 1 Наличие приложения, работающего над другим приложением Как настроить анимацию 3d flip для дочернего элемента gridview Как проверить файл существует или нет, и если не создать новый файл в SD-карте в async-задаче Как имитировать кнопки управления мультимедийными носителями на эмуляторе Android Повторное использование разделяемой библиотеки рук Android – Найти элемент по ID Adb: ошибка при загрузке разделяемых библиотек: libncurses.so.5: невозможно открыть файл общих объектов: нет такого файла или каталога Невозможно изменить цвет значка навигационного ящика в android Пользовательские анимации для запуска действий в Android не работают должным образом Как просмотреть предварительный просмотр xml в Android Studio Sd.canWrite () всегда возвращает false Android recylerview v.23.2.0 и библиотека дизайна v.23.2.0 сломаны Лучший способ реализовать Client <-> Server <-> Архитектура базы данных в приложении для Android? Как перенести квадрат OpenGL пальцем?

Переопределить экран входящих вызовов?

Привет, мне было интересно, есть ли способ переопределить экран входящих вызовов, чтобы добавить к нему дополнительные функции? Если бы вы могли указать мне в правильном направлении или предоставить примерный код?

————————————————– РЕДАКТИРОВАТЬ: ————————–

Я получил приемник работать хорошо, когда вызов приходит, но как я могу получить текущее окно, чтобы переопределить экран вызова? Это то, что я получил до сих пор … но я получаю classCastException, пытающийся применить к действию из контекста, я не могу придумать другой способ получить доступ к окну.

@Override public void onReceive(Context context, Intent intent) { Bundle extras = intent.getExtras(); if (extras != null) { String state = extras.getString(TelephonyManager.EXTRA_STATE); Log.w("DEBUG", state); Log.w("DEBUG", "-------------------------------------------------- Broadcast Received"); if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) { String phoneNumber = extras .getString(TelephonyManager.EXTRA_INCOMING_NUMBER); Log.w("DEBUG", phoneNumber); Activity activity = (Activity)context.getApplicationContext(); Window window = activity.getParent().getWindow(); window.addContentView(window.findViewById(R.layout.textalertbuttonview),null); Log.w("DEBUG", "------------------------Button Added"); } } else { Log.w("DEBUG", "---------------------------------------------------no Extras"); } } 

————————————————– ИЗМЕНИТЬ 2: ————————–

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

Solutions Collecting From Web of "Переопределить экран входящих вызовов?"

Вообще говоря: вы можете настроить BroadcastReceiver, прослушивая PHONE_STATE:

 <receiver android:name=".CallsBroadcastReceiver" android:enabled="true"> <intent-filter> <action android:name="android.intent.action.PHONE_STATE" /> </intent-filter> </receiver> 

Затем внутри этого ресивера (после проверки состояния телефона, который вы хотите обработать (звонка, звонок, повесить и т. Д.), Вы должны получить текущее окно (которое должно быть экраном вызова) и добавить к нему представление. Конечно, удалите представление, как только состояние будет не тем, с которым вы хотите справиться.

Очень общее, но это идея.