contact: 
Uki D. Lucas

Recent site activity

202i. SmsReceiver.java

  • create new class in the same package
  • right-click the package name new -> class

  • name: SmsReceiver
  • superclass: android.content.BroadcastReceiver
  • Finish





























































package com.chicagoandroid.w160;


import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.telephony.SmsMessage;

import android.util.Log;


public class SmsReceiver extends BroadcastReceiver

{

private static final String CLASS_NAME = SmsReceiver.class.getSimpleName();


public boolean doesSmsStartsWith(String smsMessage, String txt)

{

return smsMessage.trim().toLowerCase().startsWith(txt.trim().toLowerCase());

}


@Override

public void onReceive(Context context, Intent intent)

{

Log.i(CLASS_NAME + ".onReceive", "started");

Bundle bundle = intent.getExtras();

if (bundle == null)

return;

Object[] pdus = (Object[]) bundle.get("pdus");

SmsMessage[] messages = new SmsMessage[pdus.length];

Log.w(CLASS_NAME + ".onReceive", pdus.length + " message(s) arrived in the queue.");


for (int i = 0; i < messages.length; i++)

{

SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdus[i]);


if (currentMessage == null)

{

Log.e(CLASS_NAME + ".onReceive", "SMS message is null -- ABORT");

break;

}


String message = currentMessage.getMessageBody();

String originatingAddress = currentMessage.getOriginatingAddress();


if (doesSmsStartsWith(message, "INFO:"))

SmsSender.validateAndSendSms(null, originatingAddress, Main.contactInfo.getText().toString());

}

}

}