postheadericon Android Sending SMS Example



Definition : Create an application to send message between two emulators


File Name : E21Activity.java




package bsr.exa;

import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
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 E21Activity extends Activity {
/**  @author Bipin S Rupadiya , www.bipinrupadiya.com
     *
     *
     *  21. Create an application to send message between two emulators.
     *  */
Button btnSendSMS;
EditText txtPhoneNo;
EditText txtMessage;

//@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btnSendSMS = (Button) findViewById(R.id.btnSendSMS);
        txtPhoneNo = (EditText) findViewById(R.id.txtPhoneNo);
        txtMessage = (EditText) findViewById(R.id.txtMessage);
     
        /*
        Intent sendIntent = new Intent(Intent.ACTION_VIEW);
        sendIntent.putExtra("sms_body", "Content of the SMS goes here...");
        sendIntent.setType("vnd.android-dir/mms-sms");
        startActivity(sendIntent);
        */
             
        btnSendSMS.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {            
            String phoneNo = txtPhoneNo.getText().toString();
            String message = txtMessage.getText().toString();            
                if (phoneNo.length()>0 && message.length()>0)              
                    sendSMS(phoneNo, message);              
                else
                Toast.makeText(getBaseContext(),"Please enter both phone number and message.", Toast.LENGTH_SHORT).show();
            }
        });      
    }
 
    //---sends a SMS message to another device---
    private void sendSMS(String phoneNumber, String message)
    {    
     
    String SENT = "SMS_SENT";
    String DELIVERED = "SMS_DELIVERED";
   
        PendingIntent sentPI = PendingIntent.getBroadcast(this, 0, new Intent(SENT),0);
     
     
        PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0, new Intent(DELIVERED), 0);
   
        //---when the SMS has been sent---
        registerReceiver(new BroadcastReceiver(){
// @Override
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode())
{
   case Activity.RESULT_OK:
   Toast.makeText(getBaseContext(), "SMS sent",Toast.LENGTH_SHORT).show();
   break;
   case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
   Toast.makeText(getBaseContext(), "Generic failure", Toast.LENGTH_SHORT).show();
   break;
   case SmsManager.RESULT_ERROR_NO_SERVICE:
   Toast.makeText(getBaseContext(), "No service",Toast.LENGTH_SHORT).show();
   break;
   case SmsManager.RESULT_ERROR_NULL_PDU:
   Toast.makeText(getBaseContext(), "Null PDU",Toast.LENGTH_SHORT).show();
   break;
   case SmsManager.RESULT_ERROR_RADIO_OFF:
   Toast.makeText(getBaseContext(), "Radio off",Toast.LENGTH_SHORT).show();
   break;
}
}
        }, new IntentFilter(SENT));
     
        //---when the SMS has been delivered---
        registerReceiver(new BroadcastReceiver(){
//@Override
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode())
{
   case Activity.RESULT_OK:
   Toast.makeText(getBaseContext(), "SMS delivered", Toast.LENGTH_SHORT).show();
   break;
   case Activity.RESULT_CANCELED:
   Toast.makeText(getBaseContext(), "SMS not delivered", Toast.LENGTH_SHORT).show();
   break;  
}
}
        }, new IntentFilter(DELIVERED));      
   
        SmsManager sms = SmsManager.getDefault();
        sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);            
    }  
}


File Name : SmsReceiver.java


package bsr.exa;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.SmsMessage;
import android.widget.Toast;


public class SmsReceiver extends BroadcastReceiver
{
/**  @author Bipin S Rupadiya , www.bipinrupadiya.com
   
     *  */

public void onReceive(Context context, Intent intent)
{
        //---get the SMS message passed in---
        Bundle bundle = intent.getExtras();      
        SmsMessage[] msgs = null;
        String str = "";          
        if (bundle != null)
        {
            //---retrieve the SMS message received---
            Object[] pdus = (Object[]) bundle.get("pdus");
            msgs = new SmsMessage[pdus.length];          
            for (int i=0; i<msgs.length; i++){
                msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);              
                str += "SMS from " + msgs[i].getOriginatingAddress();                  
                str += " :";
                str += msgs[i].getMessageBody().toString();
                str += "\n";      
            }
            //---display the new SMS message---
            Toast.makeText(context, str, Toast.LENGTH_SHORT).show();
        }                
}
}


File Name : AndroidManifest.xml


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="bsr.exa"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" />
    <uses-permission android:name="android.permission.READ_SMS"></uses-permission>
    <uses-permission android:name="android.permission.SEND_SMS"></uses-permission>

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".E21Activity"
                  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>


0 comments:

Follow by Email

Total Pageviews

© BipinRupadiya.com. Powered by Blogger.