Android Переадресация вызовов программно

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

Сначала я просмотрел этот пост https://stackoverflow.com/a/5735711, который предполагает, что это невозможно через Android. Но в другом посте есть какое-то решение. https://stackoverflow.com/a/8132536/1089856

Я попробовал этот код из второго сообщения, но я получаю следующее сообщение об ошибке: «Проблема с переадресацией вызовов или неверный код MMI».

String callForwardString = "**21*5556#";   
Intent intentCallForward = new Intent(Intent.ACTION_CALL);
Uri uri2 = Uri.fromParts("tel", callForwardString, "#");
intentCallForward.setData(uri2);                                
startActivity(intentCallForward);

Где 5556 - это номер эмулятора (для тестирования), на который я хочу переадресовать вызов.


person Mudassir    schedule 09.12.2011    source источник


Ответы (2)


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

Наберите тот же код "**21*5556#" на своем эмуляторе и проверьте. Тоже не работает! Замените 5556 номером телефона, на который вы хотите переадресовать вызов, а затем попробуйте его на телефоне.

Это означает, что коды DTMF будут работать только на мобильных телефонах, а не на эмуляторах или планшетах без поддержки SIM-карты.

EDIT: вы можете найти различные коды переадресации звонков здесь.

person Pallavi    schedule 12.12.2011
comment
Как мы можем программно узнать разные коды переадресации? - person Umang Kothari; 11.12.2014

Удалите "#" из Uri uri2 = Uri.fromParts("tel", callForwardString, "#"); если это не сработает, попробуйте просто *21*number#

person rootchanger1    schedule 16.07.2019