Android: вызов USSD, не принимающий значения десятичной точки, принимает только целые числа? [Дубликат]

Так как это самый популярный вопрос в отношении этой проблемы, я снова опубликую здесь еще один ответ:

Похоже, что есть более простой способ сделать это (но только в MySQL):

select *
from (select * from mytable order by id, rev desc ) x
group by id

Пожалуйста, прокомментируйте ответ пользователя Bohemian в на этот вопрос за предоставление такого краткого и элегантного ответа на эту проблему.

EDIT: хотя это решение работает для многих людей, оно может быть нестабильным в долгосрочной перспективе, поскольку MySQL не гарантирует, что оператор GROUP BY вернет значимые значения для столбцов, не входящих в список GROUP BY. Поэтому используйте это решение на свой страх и риск

14
задан Roberto Tellez Ibarra 7 July 2015 в 05:08
поделиться

2 ответа

Показанный код Java отлично работает, предполагая, что doubleValue является float или double.

Как предложено здесь , Intent обрабатывается OutgoingCallBroadcaster.processIntent (), который обрабатывает Строка, указанная в намерении, вызовите PhoneNumberUtils.convertKeypadLettersToDigits () и PhoneNumberUtils.stripSeparators() .

Последний разделит все, кроме чисел, *, #, + и символы WILD, WAIT и PAUSE.

Здесь теряется ваш разделитель десятичных чисел.

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

Тот, кто несет ответственность за принимающую сторону, может, вероятно, советовать вам правильно форматировать десятичное число.

6
ответ дан Community 28 August 2018 в 07:47
поделиться

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

Поэтому, если я вхожу в «1», он интерпретируется как 0,01. Аналогично, «1023» будет 10.23.

Я думаю, что такой же подход мог бы сработать для вас. Таким образом, 1.23 вводится как «123» и 0.80 как «80»

Я не вижу ссылки, которая ограничивает символы 0-9 # *, но все примеры следуют этому формату. Однако ваш пример начинается с * 234, который, похоже, соответствует этому правилу в спецификации

Случай a) 1, 2 или 3 цифры из набора (*, #), за которым следует 1X (Y), где X = любое число 0-4, Y = любое число 0-9, затем, необязательно «*, за которым следует любое количество любых символов» и завершение с # SEND: этот случай зарезервирован для использования HPLMN. Когда обслуживающая сеть получает такое сообщение от приглашенного абонента, оно передает сообщение USSD непосредственно в HPLMN. Если он получает его от домашнего абонента, он должен решить, следует ли его обрабатывать локально или передать его в HLR

http://www.etsi.org/deliver /etsi_ts/100600_100699/100625/07.00.00_60/ts_100625v070000p.pdf

В общем, я не уверен, что HPLMN (Home Public Land Mobile Network) или HLR (Home Location Register) будет ожидать дополнительные символы, даже если весь набор символов и даже другие наборы символов разрешены в протоколе USSD.

6
ответ дан formica 28 August 2018 в 07:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: