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