Как использовать sendMultimediaMessage в SmsManager?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как использовать sendMultimediaMessage в SmsManager?

Сообщение Anonymous »

В настоящее время я разрабатываю приложение React Native для отправки текстовых сообщений. Я успешно отправил сообщения с помощью smsManager.sendMultipartTextMessage(), но столкнулся с проблемой, когда некоторые устройства получают сообщения как разделенные части. Похоже, это проблема, связанная с оператором связи или самим устройством, которую я не могу решить. Поэтому я хочу вместо этого переключиться на отправку MMS.
Я попробовал использовать smsManager.sendMultimediaMessage(), как описано на этой странице: sendMultimediaMessage
Однако , я продолжаю сталкиваться со сбоями и полагаю, что проблема может быть связана с созданием файла PDU.
Я ссылался на этот сайт, чтобы узнать формат данных:
dataFormatНесмотря на многочисленные попытки, мне не удалось добиться успеха, поэтому я обращаюсь за помощью. Как мне правильно создать contentUri, который является вторым параметром для smsManager.sendMultimediaMessage()?
Сообщение должно быть отправлено в фоновом режиме без открытия приложения для обмена сообщениями по умолчанию.
мой код такой

Код: Выделить всё

@ReactMethod
public void sendDirectSms(String phoneNumber, String msg) {
try {
SmsManager smsManager = SmsManager.getDefault();
// create MMS
ContentValues mmsValues = new ContentValues();
mmsValues.put(Telephony.Mms.SUBJECT, "Subject");

Uri mmsUri = this.context.getApplicationContext().getContentResolver().insert(Telephony.Mms.CONTENT_URI, mmsValues);
if (mmsUri == null) {
Log.e("SendDirectSms", "Failed to create MMS message.");
return;
}

String messageId = mmsUri.getLastPathSegment();

// add adress
Uri addrUri = Uri.withAppendedPath(mmsUri, "addr");
ContentValues addrValues = new ContentValues();
addrValues.put(Telephony.Mms.Addr.MSG_ID, messageId);
addrValues.put(Telephony.Mms.Addr.ADDRESS, phoneNumber);
addrValues.put(Telephony.Mms.Addr.TYPE, 137);
// addrValues.put(Telephony.Mms.Addr.TYPE, PduHeaders.TO);
Uri insertedAddrUri = this.context.getApplicationContext().getContentResolver().insert(addrUri, addrValues);

// // 3. add text part
Uri partUri = Uri.withAppendedPath(mmsUri, "part");
ContentValues partValues = new ContentValues();
partValues.put(Telephony.Mms.Part.MSG_ID, messageId);
partValues.put(Telephony.Mms.Part.CONTENT_TYPE, "text/plain");
partValues.put(Telephony.Mms.Part.TEXT, msg);
Uri insertedPartUri = context.getApplicationContext().getContentResolver().insert(partUri, partValues);

smsManager.sendMultimediaMessage(this.context.getApplicationContext(), mmsUri, null, null, null);
} catch (Exception ex) {
System.out.println("couldn't send message.");
}
}
Всякий раз, когда я пытаюсь отправить MMS, сообщений об ошибках не появляется, но когда я проверяю приложение для обмена сообщениями по умолчанию, MMS не отправляется.

Подробнее здесь: https://stackoverflow.com/questions/789 ... smsmanager
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»