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 * номер #