In this post I will teach to make app that can receive a text message, you will be able to obtain the sending number and message to do with it as you please, in this app we will simply display the information as shown in the images below.

How the app looks when no messages have been received

the app after receiving one text message, the number was covered with a white box

the application after receiving two text messages. The numbers were covered with a white box.
JAVA Activity File ReceiveSMSActivity.java
package com.example.receivesms; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class ReceiveSMSActivity extends Activity{ static TextView messageBox; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); messageBox=(TextView)findViewById(R.id.messageBox); } public static void updateMessageBox(String msg) { messageBox.append(msg); } }
JAVA Broadcasting Listener File TextMessageReceiver.java
This java class in charge of listening for new text messages and processing them.
package com.example.receivesms; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.telephony.SmsMessage; public class TextMessageReceiver extends BroadcastReceiver{ public void onReceive(Context context, Intent intent) { Bundle bundle=intent.getExtras(); Object[] messages=(Object[])bundle.get("pdus"); SmsMessage[] sms=new SmsMessage[messages.length]; for(int n=0;n<messages.length;n++){ sms[n]=SmsMessage.createFromPdu((byte[]) messages[n]); } for(SmsMessage msg:sms){ ReceiveSMSActivity.updateMessageBox("\nFrom: "+msg.getOriginatingAddress()+"\n"+ "Message: "+msg.getMessageBody()+"\n"); } } }
Layout File main.xml
The only GUI is a text view, this is where the new messages appear.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:id="@+id/messageBox" android:text="message will appear here" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
Android Manifest File AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.receivesms" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true"> <activity android:name=".ReceiveSMSActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name=".TextMessageReceiver"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver> </application> <uses-permission android:name="android.permission.RECEIVE_SMS" /> </manifest>