Sending and receiving text messages should be one of the most basic features of every cell phone, even if the old phone many years ago will have this feature, and Android as an excellent smartphone operating system, naturally, there is no support in this regard. Today we start by creating a simple app that sends and receives text messages.
Directory Navigation
- Receive SMS
- Send SMS
- Friendship Link
Receive SMS
The structure of the project is as follows: a simple ability to receive and send SMS messages
Define a radio message: When the phone receives a text message, the system emits a radio value of Android.provider.Telephony.SMS_RECEIVED, which carries all the data associated with the text message.
//receive a message broadcastclassMessagereceiverextendsBroadcastreceiver {@Override Public voidOnReceive (Context context, Intent Intent) {Bundle bundle=Intent.getextras (); Object[] PDUs= (object[]) bundle.get ("PDUs");//Extract SMS Messagessmsmessage[] Messages =NewSmsmessage[pdus.length]; for(inti = 0; i < messages.length; i++) {Messages[i]= SMSMESSAGE.CREATEFROMPDU ((byte[]) pdus[i]); } String Address= Messages[0].getoriginatingaddress ();//Get Sender NumberString fullmessage = ""; for(Smsmessage message:messages) {fullmessage+ = Message.getmessagebody ();//Get SMS Content} textview.settext ("Address;" + address + ", message:" +fullmessage); Abortbroadcast (); }}
Second, register the broadcast, here we dynamically register in the code:
// register to receive a broadcast New Intentfilter (); intentfilter1.setpriority (intentfilter.system_high_priority); Intentfilter1.addaction (" Android.provider.Telephony.SMS_RECEIVED "new messagereceiver (); Registerreceiver ( Messagereceiver, intentFilter1);
Iii. Rights of Claim:
<android:name= "Android.permission.SEND_SMS"/>< android:name= "Android.permission.RECEIVE_SMS"/>
Send SMS
One, send SMS: Use getdefault method to get Smsmanager object, call sendtextmessage method Send SMS
//Send SMS Public voidSend (View view) {Smsmanager Smsmanager=Smsmanager.getdefault (); String destinationaddress= "15527100207"; String text= "I love you!" "; Intent Intent1=NewIntent (sent_sms_action); Pendingintent sentintent= Pendingintent.getbroadcast ( This, 0, Intent1, 0); Intent Intent2=NewIntent (delivery_sms_action); Pendingintent deliveryintent= Pendingintent.getbroadcast ( This, 0, Intent2, 0); Smsmanager.sendtextmessage (destinationaddress,NULL, text, sentintent, deliveryintent);//Aidl Services, inter-process communication}
Let's take a specific look at the meaning of the sendtextmessage method parameter:
Public void sendtextmessage (String destinationaddress, String scaddress, String text,pendingintent sentintent, pendingintent deliveryintent) destinationaddress: // destination, that is, the other person's mobile phone number scaddress: // Service center address, empty is the default smsctext: // Send the message of the specific content sentintent:/ / When the message succeeds or fails to send, the broadcast deliveryintent is initiated: // when the message arrives at the destination, the broadcast is initiated
Third, the Sentintent broadcast:
//send a status broadcast of a text messageclassMessagebroadcastextendsBroadcastreceiver {@Override Public voidOnReceive (Context context, Intent Intent) {//a 10-digit number is sent and can be successful, but the other person does not receive text messages. if(Getresultcode () = =RESULT_OK) {Toast.maketext (mainactivity). This, "Sent successfully!", Toast.length_short). Show (); } Else{toast.maketext (mainactivity). This, "Send failed!", Toast.length_short). Show (); } }}
Iv. deliveryintent Radio:
class extends broadcastreceiver { @Override public void OnReceive (Context context, Intent Intent) { toast.maketext (mainactivity. This, "the other receives SMS success!" , Toast.length_short). Show (); }}
Friendship Link
Android Basic----> send and receive SMS