Android Как сделать вызов, который включает "#" или "p" в циферблате?

Мне нужно совершать звонки в моем приложении для Android, которое включает "#" или "p" в циферблате.

Если я использую следующий код:

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:629941945#22412"));
    startActivity(intent);

Он вызывает номер 629941945 без # и 22412.

И если я использую следующий код:

Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:629941945p22412"));
    startActivity(intent);

Он делает вызов без "p": 62994194522412.

Есть ли форма, которую я могу решить?

Ответы

Ответ 1

Я решил эту проблему. Вот код, решающий ее.

Intent shortcutIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+Uri.encode("*111*2#")));
startActivity(shortcutIntent);

Его работа прекрасна в моем конце. Надеюсь, он также поможет вам, ребята...

Ответ 2

Попробуйте tel:629941945%2322412 вместо tel:629941945#22412

%23 будет заменен на #

Ответ 4

Вы не можете разобрать такие специальные номера с URI, поскольку они не соответствуют стандарту tel:. (http://www.ietf.org/rfc/rfc3966.txt Страница 6ff) Вы можете использовать ACTION_DIAL и дать пользователю возможность ввести номер самостоятельно. Возможно, тогда телефон интерпретирует это так, как это требуется для сигнала паузы p. Чтобы отправить такие сигналы паузы, ответьте Алексу Климашевскому.

Ответ 5

Попробуйте использовать "," (запятая) вместо p. Не знаю о "#", хотя, извините.

Ответ 6

Проверьте это, надеюсь, что это поможет:)

В некоторых телефонах нет символа "p", но "," (запятая), где-то это "T", и если ваш телефон не имеет этих модных символов, попробуйте "*" или "#". Надеюсь, один из этих персонажей будет работать. Остерегайтесь, на некоторые телефоны чувствительны к регистру букв, поэтому P не может работать.

Ответ 7

Пауза не поддерживается в спецификации tel URI.

http://www.ietf.org/rfc/rfc3966.txt

Как указано в другом ответе %23, можно использовать для замены #.