Отправка составных SMS с конвертации устройства в MMS

Посмотрев на сайте, я не смог найти решение этой проблемы. Позвольте мне объяснить немного больше:

Я пытаюсь отправить (программно) из приложения составное SMS. Это на самом деле работает на моем устройстве (Nexus 4), но я пробовал его на Galaxy Note, который конвертирует любые длинные SMS в MMS, а приложение отправляет только короткие SMS. Любая подсказка об этом? Предотвращает ли Samsung API или что-то еще выполнение метода sendMultipartTextMessage()?

В моей функции отправки у меня есть отладка журнала, которая отображается на экране, поэтому вызов этой функции выполнен правильно.

Спасибо за любую помощь!

Вот код, который я использую:

public static void sendSMS(final Activity a, String phoneNumber, String message)
{        
    try {
        SmsManager sms = SmsManager.getDefault();
        ArrayList<String> parts = sms.divideMessage(message); 

        ArrayList<PendingIntent> sendIntents = new ArrayList<PendingIntent>(parts.size());
        for (int i = 0; i < sendIntents.size(); i++)
        {
            Intent sendInt = new Intent("");
            PendingIntent sendResult = PendingIntent.getBroadcast(a.getApplicationContext(), 0, sendInt, PendingIntent.FLAG_ONE_SHOT);
            sendIntents.add(sendResult);
        }

        sms.sendMultipartTextMessage(phoneNumber, null, parts, null, null);
        ContentValues values = new ContentValues();

        values.put("address", phoneNumber);
        values.put("body", message); 

        a.getApplicationContext().getContentResolver().insert(Uri.parse("content://sms/sent"), values);
    } catch(Exception e) {
        e.printStackTrace(System.out);
    }
}

person Micky De Caritte    schedule 19.04.2013    source источник


Ответы (1)


    public void sendSMS(String phoneNumber, String longMessage) {
    try {

        SmsManager sms = SmsManager.getDefault();
        ArrayList<String> parts = sms.divideMessage(longMessage);
        sms.sendMultipartTextMessage(phoneNumber, null, parts, null, null);

    } catch (Exception ex) {
        ex.printStackTrace();
    }
   }

добавьте это разрешение также:

<uses-permission android:name="android.permission.SEND_SMS"/>

приведенный выше код работает на Samsung Galaxy Note 2 (Android 4.1.1), Micromax HD Canvas (Android 4.1.1), Samsung Galaxy S3 (Android 4.1.1), HTC One X (Android 4.0).

Так что эта функция у меня не блокируется на телефонах самсунг.

person VISHAL VIRADIA    schedule 19.04.2013
comment
Спасибо за попытку, я обновил тему своим кодом, вы можете видеть, что он точно такой же и не работает на Galaxy Note (первый на Android 4.1.2).. Я все еще разочарован этим, но, кстати, спасибо! - person Micky De Caritte; 23.04.2013
comment
Привет, не могли бы вы сказать мне -› Количество символов, которое вы хотите отправить в SMS? - person VISHAL VIRADIA; 25.04.2013
comment
Привет, я пытаюсь отправить BigInteger (2048 бит) с заголовком, так что около 280 символов :) - person Micky De Caritte; 26.04.2013
comment
146 (= 1 SMS) и 3 SMS разрешено для текстовых смс (означает 3 * 146 = 438 символов), после чего он преобразует смс в мультимедийные SMS (в моем Galaxy Note 2) ... - person VISHAL VIRADIA; 29.04.2013
comment
Спасибо за эту информацию, я посмотрю на любое другое решение! - person Micky De Caritte; 08.05.2013