How do you create an Android SMS intent? -


i want unit test sms broadcast reveiver's onreceive method don't know how create sms intent. onreceive method looks this:

@override public void onreceive(context context, intent intent) {     if (intent.getaction()             .equals("android.provider.telephony.sms_received")) {         stringbuilder sb = new stringbuilder();         bundle bundle = intent.getextras();         if (bundle != null) {             smsmessage[] messages = getmessagesfromintent(intent);         }      } } private smsmessage[] getmessagesfromintent(intent intent) {    smsmessage retmsgs[] = null;    bundle bdl = intent.getextras();    try {     object pdus[] = (object[]) bdl.get("pdus");     retmsgs = new smsmessage[pdus.length];     (int n = 0; n < pdus.length; n++) {         byte[] bytedata = (byte[]) pdus[n];         retmsgs[n] = smsmessage.createfrompdu(bytedata);     }     } catch (exception e) {     log.e("getmessages", "fail", e); } return retmsgs; 

}

any tips?

/christian

i think using gsm version of smsmessage. gsm version depreciated. smsmessage works differently. should have these imports: import android.telephony.smsmanager , import android.telephony.smsmessage. following code extract message body , originating address. following code works in broadcast receiver (note individual pdu extraction).

    bundle bundle = intent.getextras();     if (bundle != null) {         object[] pdus = (object[]) bundle.get("pdus");         (int = 0; < pdus.length; i++) {             smsmessage = smsmessage.createfrompdu((byte[]) pdus[i]);             originatingaddress = smsmessage.getoriginatingaddress();             if (!phonenumber.equals(originatingaddress)) {                 phonenumber = originatingaddress; // retain last number if different             }             messagebody += smsmessage.getmessagebody() + "\n"; // concatenate parts         }     } 

the messagebody variable set "" earlier in code.

for testing, start emulator , use emulator control view send text messages. can 1 following menu windos->show view->other...->emulator control. view has telephony , gps entry capabilities. stuff bunch of log.d code , watch logcat...


Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -