1. package gates.apps.automaticmessageresponder;
  2.  
  3. import android.app.Activity;
  4. import android.content.ComponentName;
  5. import android.content.pm.PackageManager;
  6. import android.os.Bundle;
  7. import android.view.Menu;
  8. import android.view.View;
  9.  
  10. public class MainActivity extends Activity {
  11.  
  12. @Override
  13. protected void onCreate(Bundle savedInstanceState) {
  14. super.onCreate(savedInstanceState);
  15. setContentView(R.layout.activity_main);
  16. }
  17.  
  18.  
  19. public void register(View view){
  20. ComponentName receiver = new ComponentName(this, SmsReceiver.class);
  21. PackageManager pm = this.getPackageManager();
  22. pm.setComponentEnabledSetting(receiver,
  23.  
  24. PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
  25.  
  26. PackageManager.DONT_KILL_APP);
  27.  
  28.  
  29. }
  30. public void unRegister(View view){
  31.  
  32. ComponentName receiver = new ComponentName(this, SmsReceiver.class);
  33.  
  34. PackageManager pm = this.getPackageManager();
  35. pm.setComponentEnabledSetting(receiver,
  36.  
  37. PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
  38.  
  39. PackageManager.DONT_KILL_APP);
  40.  
  41. }
  42.  
  43.  
  44.  
  45. @Override
  46. public boolean onCreateOptionsMenu(Menu menu) {
  47. // Inflate the menu; this adds items to the action bar if it is present.
  48. getMenuInflater().inflate(R.menu.main, menu);
  49. return true;
  50. }
  51.  
  52. }
  53.  
  54.  
  55. ======= another class ====
  56. package gates.apps.automaticmessageresponder;
  57.  
  58. import android.content.BroadcastReceiver;
  59. import android.content.Context;
  60. import android.content.Intent;
  61. import android.os.Bundle;
  62. import android.telephony.SmsManager;
  63. import android.telephony.SmsMessage;
  64. import android.util.Log;
  65. import android.widget.Toast;
  66.  
  67.  
  68.  
  69. public class SmsReceiver extends BroadcastReceiver {
  70.  
  71. // Get the object of SmsManager
  72. final SmsManager sms = SmsManager.getDefault();
  73.  
  74. @Override
  75. public void onReceive(Context context, Intent intent) {
  76. // TODO Auto-generated method stub
  77.  
  78.  
  79. // Retrieves a map of extended data from the intent.
  80. final Bundle bundle = intent.getExtras();
  81.  
  82. try {
  83.  
  84. if (bundle != null) {
  85.  
  86. final Object[] pdusObj = (Object[]) bundle.get("pdus");
  87.  
  88. for (int i = 0; i < pdusObj.length; i++) {
  89.  
  90. SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
  91. String phoneNumber = currentMessage.getDisplayOriginatingAddress();
  92.  
  93. String senderNum = phoneNumber;
  94. String message = currentMessage.getDisplayMessageBody();
  95.  
  96. Log.i("SmsReceiver", "senderNum: "+ senderNum + "; message: " + message);
  97.  
  98.  
  99. // Show alert
  100. int duration = Toast.LENGTH_LONG;
  101. Toast toast = Toast.makeText(context, "senderNum: "+ senderNum + ", message: " + message, duration);
  102. toast.show();
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110. } // end for loop
  111. } // bundle is null
  112.  
  113. } catch (Exception e) {
  114. Log.e("SmsReceiver", "Exception smsReceiver" +e);
  115.  
  116. }
  117.  
  118.  
  119.  
  120.  
  121. }
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139. }