Как использовать 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 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как использовать sendMultimediaMessage в SmsManager?
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Smsmanager не работает над Samsung Galaxy S3 LTE
    Anonymous » » в форуме Android
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Smsmanager.getDefault () - Унимок - что заменить?
    Anonymous » » в форуме Android
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Smsmanager.senddatamessage не работает код ошибки 111
    Anonymous » » в форуме Android
    0 Ответы
    0 Просмотры
    Последнее сообщение Anonymous
  • Не могу использовать double, не могу использовать int, что мне использовать, чтобы остановить округление? (Джава)
    Гость » » в форуме JAVA
    0 Ответы
    46 Просмотры
    Последнее сообщение Гость

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