Проверка символов SMS в Android - использование countGsmSeptetsUsingTables () - PullRequest
0 голосов
/ 20 мая 2019

Я очень новичок в разработке для Android.

В моем приложении я отправляю составные SMS с помощью sendMultipartTextMessage(). Перед отправкой я хотел бы проверить количество SMS-сообщений, которые будут использоваться для отправки этого сообщения. В Android это уже встроено, поэтому я думаю, что не стоит писать свою собственную функцию.

Итак, я мог бы просто использовать smsManager.divideMessage(), чтобы указать количество сообщений перед отправкой. Однако в идеале я хотел бы сделать следующее:

  1. Предоставьте отзыв о количестве использованных сообщений и количестве символов, оставшихся до достижения порогового значения для запроса другой части SMS (например, «осталось 1 смс / 22 символа»). countGsmSeptetsUsingTables в Android, кажется, выполняет эту проверку, но не уверен, могу ли я вызвать это напрямую, поскольку он не является частью API Android, и для него также требуются параметры, такие как languageTable, которые я не уверен, как они получены по системе.
  2. Список символов, которые не являются частью 7-битной кодировки GSM. Опять же, countGsmSeptetsUsingTables() выполняет проверку символов, но в настоящее время не возвращает, какие символы вынуждают его отправлять как Unicode. (У меня был интересный случай использования, когда неразрывный пробел между копией и вставкой из электронной почты в приложение заставлял его отправлять как Unicode, что означало, что сообщение использовало 3 части вместо 1).

Есть ли способ использовать Android во встроенных проверках или мне в конечном итоге придется написать свою собственную версию countGsmSeptetsUsingTables()?

Edit: Я вижу, CalculateLength () является частью API и должен удовлетворять (1), но не уверен, что (2) возможно без написания пользовательской функции.

...