Отправка USSD-запроса за одну сессию

Я хотел бы вызвать ussd в этом формате *123*1*3#, чтобы сократить процесс набора *123#, ожидание меню, затем 1, ожидание меню, затем 3.

Я обнаружил, что в некоторых вызовах ussd это возможно, а в некоторых нет, но есть ряд приложений, которые это делают, например https://usehover.com

Ниже приведен код основного разработчика Android, который я использовал для запуска команды ussd, и я считаю, что ему повезло с поддержкой.

String ussd = "*123*1*4*5" + Uri.encode("#");
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + ussd)));

чтобы получить окончательный вывод меню 5, но это не сработало, кроме того, я также попробовал https://gist.github.com/posei/1e5ae219329aa1015d3c55c3982352c5, который тоже не работает

Передача нескольких команд USSD за один вызов

интерактивный сеанс ussd (многоэтапный) не работает на Android 8 (Oreo)

Мне нравится спрашивать, есть ли кто-нибудь, кто знает, как это сделать, или какое-либо решение, которое можно использовать для решения этой проблемы.

Спасибо


person wwwserver2    schedule 08.07.2019    source источник
comment
@Andreas прошу о помощи, потому что я провел много исследований и потерпел неудачу via-requ" title="навигация Android по меню ussd с использованием заранее определенных входных данных, отправленных через requ">stackoverflow.com/questions/55330850/   -  person wwwserver2    schedule 08.07.2019
comment
Ответы, которые я получаю в Интернете, не объясняют это и не работают, некоторые, кажется, доступны только в руде.   -  person wwwserver2    schedule 08.07.2019
comment
Спасибо, я сделал как просьба... Я хотел бы спросить ваши знания и предложения   -  person wwwserver2    schedule 08.07.2019


Ответы (3)


К сожалению, API, который Google добавил в Oreo, работает только для USSD-сервисов, где вы можете набрать весь USSD-код в начале и получить ответ, ничего не вводя в сеанс. Чего они, по-видимому, не понимают, так это того, что большинство телекоммуникационных компаний не допускают этого из соображений безопасности.

Моя компания Hover, о которой вы упомянули, разработала Android SDK, чтобы вы могли получить эту функциональность в своем приложении. То, что вы представили в качестве метода набора номера, является правильным, но затем для дополнительных шагов мы используем службы специальных возможностей Android для обнаружения и ввода вариантов в сеанс. Это может быть довольно сложно, особенно для того, чтобы заставить его работать на разных устройствах и версиях Android. Без использования служб специальных возможностей невозможно вернуть ответ сеанса.

Наш инструмент позволяет создавать конфигурации для служб USSD, а затем запускать сеанс из вашего приложения. Вы можете передать любые переменные времени выполнения, которые вам нужны. Пользователь никогда не видит сеанс USSD, и когда возвращается ответ, ваше приложение получает уведомление, и вы можете анализировать его по мере необходимости. Работает на Android 4.3 и выше.

SDK можно бесплатно интегрировать и использовать до тех пор, пока вы не достигнете больших масштабов. Ознакомьтесь с нашей документацией, чтобы начать работу.

(Раскрытие информации: я технический директор Hover)

person davkutalek    schedule 20.04.2020

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

person mszmurlo    schedule 28.12.2019

Есть замечательный сервис под названием AutoUssd (https://autoussd.com), который позволяет вам делать именно это.

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

Пожалуйста, проверьте его, чтобы увидеть, соответствует ли он вашим потребностям...

person Kwame Opare Asiedu    schedule 26.06.2021