Android e Bluetooth (3)

luca 28/04/2014 0

Riprendiamo il corso relativo alla programmazione di app Android con funzionalità Bluetooth per un piccolo tutorial che spiega come rilevare il cambio di stato del modulo Bluetooth.

Android è un sistema operativo multitasking: mentre la nostra applicazione è in esecuzione, è possibile che l’utente o un’altra applicazione cambino lo stato del modulo Bluetooth, ad esempio disattivandolo.

Nel primo tutorial abbiamo già visto come chiedere ad Android di attivare le funzionalità Bluetooth; in maniera simile possiamo chiedere sempre ad Android di notificare alla nostra app ogni cambio di stato.

Per prima cosa creiamo un BroadcastReceiver che riceverà i messaggi dal S.O.

mReceiver = new BroadcastReceiver() {

all’interno del metodo onReceive() del nostro Receiver verifichiamo se il messaggio ricevuto è relativo al cambio di stato del modulo Bluetooth:

public void onReceive(Context context, Intent intent) {
  String action = intent.getAction();
  if (BluetoothAdapter.ACTION_STATE_CHANGED.equals(action)) {

otteniamo quindi lo stato attuale dagli extra parameters dell’Intent. Lo stato è un valore di tipo int, utilizziamo quindi il metodo getIntExtra, indicando il nome del parametro da ottenere e specificando un valore di default, che ci verrà restituito se non viene trovato un parametro con il nome specificato:

int actualState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, 
 BluetoothAdapter.STATE_OFF);

infine registriamo il nostro Receiver come abbiamo già imparato:

IntentFilter stateChangedfilter = 
 new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
registerReceiver(mReceiver, stateChangedfilter);

Il modulo Bluetooth può avere quattro diversi stati:

  • BluetoothAdapter.STATE_ON
  • BluetoothAdapter.STATE_OFF
  • BluetoothAdapter.STATE_TURNING_ON
  • BluetoothAdapter.STATE_TURNING_OFF

Ho preparato una app di esempio che visualizza in maniera grafica lo stato attuale, aggiornandosi automaticamente se questo cambia:

I sorgenti della app sono come sempre disponibili su Github!

Leave A Response »

Questo sito usa i cookie per poterti offrire una migliore esperienza di navigazione maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi