#android #telephonymanager
#Android #telephonymanager
Вопрос:
Мы разрабатываем приложение для идентификации вызывающего абонента, и до сих пор мы можем заменить экран входящего вызова по умолчанию нашим собственным макетом / экраном идентификатора вызывающего абонента следующимhttp://developer.android.com/reference/android/telephony/TelephonyManager.html с помощью CALL_STATE_RINGING
Однако проблема, с которой мы сталкиваемся, заключается в следующем:
а) Когда телефон получает входящий вызов, экран входящего вызова по умолчанию получает приоритет и отображается немедленно
б) через 1-2 секунды появляется экран идентификации вызывающего абонента. мы хотим полностью избежать / подавить / отложить экран входящего вызова по умолчанию, чтобы пользовательский интерфейс был лучше.
Комментарии:
1. Как вы это сделали? Я использовал ваш код ниже, но я все еще вижу экран вызывающего абонента по умолчанию, после чего появляется мой.
Ответ №1:
Я не нашел способа полностью отключить экран по умолчанию. Однако меньшая задержка (500 мс) перед началом работы работает для меня хорошо. Кроме того, у меня есть следующие флаги в моем намерении начать свою пользовательскую активность. Мой код выглядит примерно так :
if (TelephonyManager.EXTRA_STATE_RINGING.equals(state))
{
SystemClock.sleep(500 * 1);
Log.d("MPR", "Its Ringing [" number "]");
Intent startMain = new Intent();
startMain.setClassName("com.foo.TIC", "com.foo.TIC.TestInComing");
startMain.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_USER_ACTION);
startMain.putExtra("PNO", number);
context.startActivity(startMain);
}
Ответ №2:
Если мы используем широковещательный приемник, то можно использовать наше собственное диалоговое окно и экран.