public class AirplaneReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}
L'ho chiamato AirplaneReceiver, ma avrei potuto chiamarlo pure Pasquale, se avessi voluto.Anzi, facciamo una cosa: lo chiamo veramente Pasquale! O meglio con un nome mio di fantasia, sempre pertinente...
public class Ricevitore extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}
Scrivo il codice delle azioni da fare al ricevimento del Broadcast:
public class Ricevitore extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Ciao, bella gente!", Toast.LENGTH_SHORT).show();
}
}
(con la scusa, ho ripassato un po' la sintassi del Toast)
E adesso, seguendo il tutorial, andiamo alla parte della registrazione.
Per prima cosa scrivo il tag %lt;receiver>
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver>
</receiver>
Il questo tag devo specificare android:name
<receiver android:name=>
</receiver>
e ottengo a questo punto una lista di suggerimenti:
...dalla quale scelgo il primo:
<receiver android:name="com.example.broadcast.Ricevitore"
</receiver>
Fondamentale è notare che questo android:name è uguale al nome del package più il nome della classe che estende BroadcastReceiver!Poi si va avanti con un <intent-filter></intent-filter> nel quale ci va un <action>.
Ecco:
<receiver android:name="com.example.broadcast.Ricevitore">
<intent-filter >
<action android:name=""
</intent-filter>
</receiver>
E qui c'è un elemento decisivo: il nome del Broadcast che viene ascoltato!
<receiver android:name="com.example.broadcast.Ricevitore">
<intent-filter >
<action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
</intent-filter>
</receiver>
Ho scelto un Broadcast diverso da quello del tutorial, con l'intenzione di provarlo.Dunque, il codice che do in Java serve a stabilire la risposta del BroadcastReceiver al messaggio Broadcast, ma non individua l'azione.
Abbiamo il nome e l'azione. Punto. Quindi nella registrazione si mettono insieme il nome del BroadcastReceiver e come intent-filter si stabilisce il messaggio che viene ascoltato dal BroadcastReceiver.
Non è difficile: xml dice: "C'è un messaggio di tipo SMS ricevuto, attivare il receiver Ricevitore. Attivato questo receiver, esso ha specificata l'azione da intraprendere, ossia la creazione di un messaggio Toast.
Vediamo se funziona!

Nessun commento:
Posta un commento