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