Программно отправляйте SMS на электронную почту с помощью Verizon Motorola Droid на Android - PullRequest
4 голосов
/ 10 апреля 2010

Мне было интересно, знает ли кто-нибудь правильный способ отправки SMS-сообщения на адрес электронной почты с помощью телефона Verizon CDMA Motorola Droid.

Внутреннее приложение обмена сообщениями, по-видимому, автоматически делает это. Хотя сторонние приложения, такие как SMSPopup, по-видимому, не могут правильно отвечать на адреса электронной почты, если вы не создадите сообщение в приложении обмена сообщениями.

Когда приложение внутреннего обмена сообщениями отправляет SMS-сообщение, в logcat появляется соответствующая запись 'RIL_REQUEST_CDMA_SEND_SMS' (adb logcat -b radio). Когда вы отправляете SMS на адрес электронной почты, он печатает то же самое, поэтому за кадром выглядит так, как будто он отправляет смс. Интересно, что если вы посмотрите на поле, отправленное поставщиком контента, сообщения будут адресованы различным номерам 1270XX-XXX-XXXX.

На других сервисах вы можете отправлять адреса электронной почты, отправляя SMS на заранее определенный короткий номер смс. А затем форматирование вашего SMS в качестве адреса электронной почты темы сообщения т.е. http://en.wikipedia.org/wiki/SMS_gateway#Carrier-Provided_SMS_to_E-Mail_Gateways

Например, используя номер T-mobile (500), вы можете отправить SMS на электронную почту, указав следующее:

SmsManager smsMgr = SmsManager.getDefault();
smsMgr.sendTextMessage("500", null, "username@domain.com message sent to an e-mail address from a SMS", null, null);

Кто-нибудь знает, если

  • Можно программно отправлять SMS-сообщения на электронные письма с телефона CDMA Android?
  • Действительно ли Verizon отправляет ваши ответы в виде SMS-сообщений или они отправляются в виде MMS или обычных сообщений электронной почты http?
  • Есть идеи о том, как перехватить исходное сообщение, чтобы узнать, что происходит?

Возможно, что Verizon каким-то образом сгенерирует фальшивый номер, временно привязанный к адресу электронной почты (поскольку повторные сообщения не отправляются на один и тот же номер). Но это выглядит довольно тяжело.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 22 апреля 2012

Я искал способ отправки коротких электронных писем с использованием системы доставки SMS, без необходимости знать адрес сервисного центра, специальные адреса и форматы сообщений и т. Д.

Как указывает Дейв, приложение для обмена текстовыми сообщениями может сделать это (подтверждено Motorola Droid + Verizon и Attrix + AT & T). Go SMS превращает сообщения на адрес электронной почты в MMS. Однако Handcent, похоже, делает это правильно - электронная почта с адреса - это адрес электронной почты для отправки SMS, например, 2223334444@vtext.com.

Подход, который сработал для меня, заключается в следующем. Это все очень экспериментально и совершенно не документировано.

  • Написать напрямую поставщику содержимого SMS («content: // sms») и вставить исходящее сообщение

    ContentValues cv = new ContentValues();
    cv.put("address", "someone@example.com");
    String time = System.currentTimeMillis()+"";
    cv.put("date", time);
    cv.put("body", "I love stackoverflow");
    cr.insert(uri, cv); // cr = ContentResolver
    cv.put("type", "6");
    
  • Ключ "discovery" имеет тип = 6. Значения 1 и 2 относятся к входящим и исходящим SMS (может быть наоборот), а 3 - к черновикам сообщений. 6 для сообщений, которые не могли быть отправлены (эмпирически определяется путем перевода телефона в режим полета и отправки текста на адрес электронной почты с помощью стандартного приложения).

  • Все это помещает сообщение в хранилище SMS. Чтобы на самом деле отправить его, нужно повторить попытку приложения на складе. Я нахожу, что перевод телефона в режим полета и переключение обратно работает - сообщение отправляется на электронную почту с помощью SMS !! - но должен быть лучший способ (и Handcent знает это?)

  • И, похоже, Verizon не любит угловые скобки в содержании сообщения.

Я реализовал это в приложении, которое пытается определить адрес электронной почты телефона по SMS, отправив электронное письмо и просмотрев адрес отправителя: http://bit.ly/J08Dyh

Это еще не было широко проверено, поэтому мне не менее интересно.

ПВС

0 голосов
/ 12 апреля 2010

Я столкнулся с вашим вопросом, потому что у меня был тот же вопрос, но ваша вики-ссылка помогла мне найти ответ.Сейчас я не слишком склонен к этому, но похоже, что он будет работать, когда вы отправляете обычное текстовое сообщение на этот номер: 6245, и тогда текстовое сообщение будет содержать адрес, тему и текст в следующем формате: email@gmail.com (Subject) тело письма.

вот мой фрагмент кода:

sm.sendTextMessage ("6245", null, "alienmanfc6@gmail.com (Subject) Тестовое письмо из SMS",NULL, NULL);

и да, вот мое электронное письмо с ответом, если вы хотите задать мне больше вопросов, я надеюсь, что это поможет вам, и я очень благодарен вам за размещение вашей ссылки, которая помогла мне:)

...