SmsManager с адресом электронной почты в качестве пункта назначения - NullPointerException - PullRequest
2 голосов
/ 15 мая 2011

Мой оператор мобильной связи предлагает шлюз для смс-почты.Это можно сделать, просто введя адрес электронной почты в качестве пункта назначения SMS-сообщения.Письмо доставлено как 5555555555@mycarrier.com

Я пытаюсь использовать это с моим новым устройством Android.Стандартное приложение для обмена сообщениями Android преобразует все сообщения с адресом электронной почты в качестве пункта назначения в «MMS» и пытается отправить их в виде данных - не то, что я хочу сделать.

Попытка с помощью android.telephony.SmsManager:

SmsManager manager = SmsManager.getDefault();

manager.sendTextMessage("address@example.com", null, "Message body here", null, null);

При этом выдается следующее исключение:

Caused by: java.lang.NullPointerException
    at com.android.internal.telephony.gsm.SmsMessage.getSubmitPduHead(SmsMessage.java:595)
    at com.android.internal.telephony.gsm.SmsMessage.getSubmitPdu(SmsMessage.java:295)
    at android.telephony.SmsMessage.getSubmitPdu(SmsMessage.java:599)
    at android.telephony.SmsManager.sendTextMessage(SmsManager.java:228)
    at android.telephony.SmsManager.sendTextMessage(SmsManager.java:107)

Я смотрел на этот проект, android-sms-email , который пытается сделать то же самое.Он также дает сбой таким же образом при настройке для моего оператора.

Это не похоже на желаемое поведение, и я предполагаю, что это ошибка Android (некоторые сообщения об ошибках намекают на проблему).Я немного поэкспериментировал и вижу, что добавление любого номера и некоторых символов к адресу электронной почты не приводит к той же ошибке, но сообщение также не доставляется.

Я также пытался использовать SmsManager.sendMultipartTextMessage, но с SmsMessage.getSubmitPduHead.

снова возникает та же проблема.

SmsManager manager = SmsManager.getDefault();

// Works
manager.sendTextMessage("15555555555", null, "Message body here", null, null);

// Fails
manager.sendTextMessage("address@example.com", null, "Message body here", null, null);

Протестировано на HTC Desire Z- Android v2.2

Ответы [ 2 ]

2 голосов
/ 15 августа 2013

Пожалуйста, проверьте эту статью.

Программно отправить SMS на электронную почту с помощью Verizon Motorola Droid на Android

Как отправить SMS-сообщение ответ на адрес электронной почты?

Вы должны знать номер шлюза SMS оператора и написать следующее:

SmsManager manager = SmsManager.getDefault();
manager.sendTextMessage("6425", null, "username@domain.com (Subject) message text", null, null);

Verizon wireless-> 6425, AT & T мобильность -> 121 111

0 голосов
/ 25 мая 2011

Я выпустил отчет об ошибке: http://code.google.com/p/android/issues/detail?id=16934

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