Oggi vi spiegherò come creare un Broadcast Receiver su Android che riceva gli sms e scatena un determinato evento.
Iniziamo Subito:
Creamo una classe chiamata RicevitoreSms e scriviamoci dentro questo:
public class RicevitoreSms extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Object messages[] = (Object[]) bundle.get(“pdus”);
SmsMessage smsMessage[] = new SmsMessage[messages.length];
smsMessage[0] = SmsMessage.createFromPdu((byte[]) messages[0]);
String corposms=smsMessage[0].getMessageBody()
;String mittente=smsMessage[0].getDisplayOriginatingAddress();
}
}
Come vedete la classe estende la superclasse broadcast receiver e “cattura” l’evento onReceive(), che in questo caso attende che il telefono riceva un sms per essere eseguito. In fondo alla classe, nelle variabili di tipo stringa corposms e mittente, avremo rispettivamente il testo del messaggio appena ricevuto e il mittente.
Se vogliamo che il messaggio non venga visualizzato sul tefefono, basterà inserire in fondo al metodo onReceive() la seguente linea di codice:
this.abortBroadcast();
Abbiamo quasi finito! L’ultimo passo ora è compilare il manifest adeguatamente.
Non è niente di difficile:
<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android”
package=”example.com.Ricevitore”
android:versionCode=”1″
android:versionName=”1.0″ >
<uses-permission android:name=”android.permission.RECEIVE_SMS” />
<uses-permission android:name=”android.permission.READ_SMS” />
<uses-sdk
android:minSdkVersion=”8″
android:targetSdkVersion=”17″ />
<application
android:allowBackup=”true”
android:icon=”@drawable/ic_launcher”
android:label=”@string/app_name”
android:theme=”@style/AppTheme” >
<receiver
android:name=”example.com.RicevitoreSms”
android:enabled=”true” >
<intent-filter android:priority=”10000″ >
<action android:name=”android.provider.Telephony.SMS_RECEIVED” />
</intent-filter>
</receiver>
</application>
</manifest>
Sostanzialmente impostiamo i permessi per ricevere e leggere gli sms e creamo una nuova action con una priorità impostata a 10000 per essere sicuri che il programma venga eseguito “al di sopra ” di tutti gli altri!
Che dire allora, spero di esservi stato d’aiuto! Buon Lavoro!
Nessun commento:
Posta un commento