Получение длинных СМС на проблемах с Android - PullRequest
1 голос
/ 10 марта 2012

У меня есть проблемы с моим кодом. Когда я получаю SMS длиной более 160 символов, сообщение выглядит как-то зашифрованным. Например текст:

Мэтт Брайан, The Next Web Новый Retina-дисплей iPad, возможно, был самая ожидаемая функция, которая будет включена в новый планшет Apple, особенно после включения дисплея с высоким разрешением.

Дает результат:

Сообщение 1: èsACiiAèeSCÑY¡ (QKAÆKqiA.KÑA (QKAÖKoARaCIgAdKiSÑCAHSgaYCsAnCgA¿KeQCagAhQKAZ§giAJqaKGiKIALKCikeKAh§ADKARÑGYkIKIARÑABaaYKgAÖKoAhCEYKiY¡JgaKGSCYYsABMiKe

Сообщение 2: ÖG§ea§eCiKIAhQKAPSOQÄdKg§YkiS§ÑAHSgaY

Фрагмент кода выглядит следующим образом:

public void onReceive( Context context, Intent intent ){

    // Get the SMS map from Intent
    Bundle extras = intent.getExtras();

    if ( extras != null ){

        // Get received SMS array
        Object[] smsExtra = (Object[]) extras.get( "pdus" );

        for ( int i = 0; i < smsExtra.length; i++ ){

            SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);

            String body = sms.getMessageBody().toString();
            String address = sms.getOriginatingAddress();

            try {

                sendMessageToServer(new Message(address, body));

            } catch (IOException e) {

                Log.w("Receive SMS", "Application not connected to server");
            }                
        }
    }

Наконец, я добавлю, что SMS, содержащие менее 160 символов, отображаются правильно.

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