Programatically send SMS to email using Verizon Motorola Droid on Android

瘦欲@ 提交于 2019-12-10 16:49:12

问题


I was wondering if anyone knew the proper way to send an SMS message to an e-mail address using Verizon's CDMA Motorola Droid phone.

The internal messaging application appears to automagically do this. While 3rd party applications like SMSPopup don't seem to be able to properly reply to e-mail addresses unless you compose the message inside the messaging application.

When the internal messaging application sends a SMS message there's a corresponding 'RIL_REQUEST_CDMA_SEND_SMS' entry in the logcat (adb logcat -b radio). When you send a SMS to an e-mail address it prints the same thing, so behind the scenes it looks as though it is sending an sms. The interesting thing is that if you look at the content provider sent box the messages are addressed to various 1270XX-XXX-XXXX numbers.

On other services you can send e-mail addresses by sending a SMS to a predefined short sms number. And then formatting your SMS as emailaddress subject message i.e. http://en.wikipedia.org/wiki/SMS_gateway#Carrier-Provided_SMS_to_E-Mail_Gateways

For example, using T-mobile's number (500) you can send a SMS to an e-mail using the following:

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

Does anyone know if

  • It is possible to programatically send SMS to email messages from a CDMA Android phone?
  • Does Verizon actually send your replies as SMS messages or are they actually sent as MMS or normal http email messages?
  • Any ideas about how to intercept what the raw message being sent to see what's going on?

It might be possible that Verizon somehow generates a fake number temporarily tied to an e-mail address (since repeated messages are not sent to the same number). But, that seems pretty heavy handed.

Thanks!


回答1:


I came across your question because I had the same question but your wiki link help me to find the answer. Now Im not toally possitive on the this but it seams to be working when you send a regular text message to this number: 6245 and then the text message will contain the address and subject and body in this format: email@gmail.com (Subject) body of the email.

here is my snipit of code:

sm.sendTextMessage("6245", null, "alienmanfc6@gmail.com (Subject) Test email from SMS", null, null);

and yes thats my accuall email there if you want to ask me more questions, I hope this helps you and I thank you very much for posting your link that helped me :)




回答2:


I have been looking for a way to send short emails using the SMS delivery system, and without having to know the service center address, special destinations and message formats etc.

As Dave points out, the stock text messaging app can do this (confirmed with Motorola Droid+Verizon and Attrix+AT&T). Go SMS turns messages to an email address into an MMS. Handcent however, seems to do this just right -- the email from address is the email-to-SMS address e.g. 2223334444@vtext.com.

The approach that has worked for me is as follows. This is all highly experimental and completely undocumented.

  • Write directly to the SMS content provider ("content://sms") and insert the outbound message

    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");
    
  • The key "discovery" is type = 6. Values 1 and 2 are for incoming and outgoing SMS (could be the other way around) and 3 is for draft messages. 6 is for messages that could not be sent (empiricaly determined by putting the phone in airplane mode and sending a text to an email address using the stock app).

  • All this places the message into the SMS store. To actually send it, the stock app needs to be poked into retrying. I find putting the phone into airplane mode and toggling back out works--the message is sent to email using SMS!!--but there must be a better way (and Handcent knows it?)

  • And oh Verizon doesn't seem to like angle brackets in its message content.

I have implemented this in an app that tries to determine the phone's email-to-SMS address by sending out an email and looking at the from address: http://bit.ly/J08Dyh

It's not been widely tested yet, so I am equally curious.

PVS



来源:https://stackoverflow.com/questions/2610566/programatically-send-sms-to-email-using-verizon-motorola-droid-on-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!