We are going to make a text messaging app: two text fields, one for the phone number and message and of course a send button. Pictures of the interface below.

a simple interface for sending text messages
and of course there will also be an error message if the user decides to try to be smart.

The error message users will get if they don't comply.
The JAVA file: SendSMSActivity.java
As always I think my comments in the code are pretty self explanatory, so I’ll just give you the code
package com.example.sendsms; // import everything you need import android.app.Activity; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.telephony.SmsManager; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class SendSMSActivity extends Activity { Button sendButton; EditText phoneTextField; EditText msgTextField; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // load the layout setContentView(R.layout.main); // make message text field object msgTextField = (EditText) findViewById(R.id.msgTextField); // make send button object sendButton = (Button) findViewById(R.id.sendButton); // make phone number field object phoneTextField = (EditText) findViewById(R.id.phoneTextField); } // this is the function that gets called when you click the button public void send(View v) { // get the phone number from the phone number text field String phoneNumber = phoneTextField.getText().toString(); // get the message from the message text box String msg = msgTextField.getText().toString(); // make sure the fields are not empty if (phoneNumber.length()>0 && msg.length()>0) { // call the sms manager PendingIntent pi = PendingIntent.getActivity(this, 0, new Intent(this, SendSMSActivity.class), 0); SmsManager sms = SmsManager.getDefault(); // this is the function that does all the magic sms.sendTextMessage(phoneNumber, null, msg, pi, null); } else { // display message if text fields are empty Toast.makeText(getBaseContext(),"All field are required",Toast.LENGTH_SHORT).show(); } } }
The code can be easily modified to send automatic text messages.
The Layout File: main.xml
<?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:text="To Phone:" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <EditText android:id="@+id/phoneTextField" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:text="Message" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <EditText android:id="@+id/msgTextField" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:text="Send" android:id="@+id/sendButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="send" /> </LinearLayout>
The Manifest File: AndroidManifest.xml
Notice the permission used to send sms, other than that it’s just the default manifest file.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sendsms" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.SEND_SMS" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".SendSMSActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>