Я работаю над приложением, использующим API SMS для Android. Принимающая сторона представляет собой встроенный модуль, который поддерживает только 7-битные закодированные SMS, а отправляемая мной строка состоит только из символов этого конкретного алфавита, из-за чего вы думаете, что Android отправит ее в 7-битной кодировке. Но это не тот случай.
Поэтому я ищу способ указать, какую кодировку использовать. Посмотрите ниже, как выглядит мой код сегодня. Метод gsm7BitPackedToString превращает массив байтов в 7-битную строку, т.е. строка состоит только из 7-битных совместимых символов и копируется из внутреннего API андроида.
private static boolean sendMessage(String tel,byte[] message,int septets) {
SmsManager sms = SmsManager.getDefault();
if (septets != -1) {
String a = GsmAlphabet.gsm7BitPackedToString(message,0,septets);
sms.sendTextMessage(tel, null, a, null, null);
return true;
}
return false;
}
Я рассмотрел следующие решения:
- Использование какого-то внутреннего метода, но ни одного из я читал о, похоже, больше не существует.
- Отправка сообщения данных, но для этого требуется дополнительный заголовок пользовательских данных, который принимающая сторона также не поддерживает.
Любая помощь приветствуется :-)