Android: Как программно отправлять юникодовые смс и правильно получать их на другой стороне? - PullRequest
5 голосов
/ 15 января 2012

Я использую простой код для отправки смс:

SmsManager.getDefault().
  sendTextMessage(phone, null, "English characters", sentPI, deliveredPI);

И все работает нормально.

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

SmsManager.getDefault().
 sendTextMessage(phone, null, "Русский текст", sentPI, deliveredPI);

Я получаю на другом эмуляторе что-то вроде этого: *&^#R*)@#_(&)@U(RH#*(&()^

Как это исправить?Пожалуйста, помогите.

Ответы [ 3 ]

1 голос
/ 16 января 2012

Это похоже на проблему эмулятора. Я использую SmsManager.sendMultipartTextMessage() метод для отправки русского текста, и нет реального пользовательского отчета о каких-либо проблемах. Попробуйте на реальном устройстве, пожалуйста.

1 голос
/ 16 января 2012

Я предполагаю, что вы должны правильно создать строку.

Например:

new String("Русский текст", "UTF-16BE");

Будьте осторожны с вашим файлом исходного кода. Обычно безопаснее добавлять коды символов Юникода, такие как \ u0000. В противном случае вы всегда должны сохранять исходный код в формате UTF16.

0 голосов
/ 20 января 2012

Да, похоже на ошибку эмулятора.Этот вопрос перенесен на другой: https://stackoverflow.com/questions/8901477/android-receiving-another-bytes-after-sending-sms

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...