Android Call Forwarding программно

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

Сначала я просмотрел этот пост qaru.site/info/476626/..., который предполагает, что это невозможно через android. Но другое сообщение имеет некоторое решение. qaru.site/info/466840/...

Я пробовал этот код со второго поста, но я получаю следующее сообщение об ошибке: "Ошибка соединения с переадресацией вызова или Недействительный код MMI".

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

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

Ответ 1

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

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

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

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

Ответ 2

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