1

我正在學習如何使用藍牙與android,我註冊了BroadCastReceiverBluetoothAdapter.ACTION_STATE_CHANGED。 在文檔中,它說如何從意圖使用額外

廣播動作:本地藍牙適配器的狀態已更改。 例如,藍牙已打開或關閉。 總是包含分別包含新狀態和舊狀態的額外字段EXTRA_STATE和EXTRA_PREVIOUS_STATE

現在,我該如何使用EXTRA_STATE和EXTRA_PREVIOUS_STATE?

+0

[示例隱含意圖](http://developer.android.com/guide/components/intents-filters.html#ExampleSend) – Onik

回答

1

here

private final BroadcastReceiver mReceiver = new BroadcastReceiver() { 
@Override 
public void onReceive(Context context, Intent intent) { 
    final String action = intent.getAction(); 

    if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) { 
     final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, 
              BluetoothAdapter.ERROR); 
     switch (state) { 
     case BluetoothAdapter.STATE_OFF: 
      //Bluetooth off 
      break; 
     case BluetoothAdapter.STATE_TURNING_OFF: 
      //Turning Bluetooth off... 
      break; 
     case BluetoothAdapter.STATE_ON: 
      //Bluetooth on 
      break; 
     case BluetoothAdapter.STATE_TURNING_ON: 
      //Turning Bluetooth on... 
      break; 
     } 
    } 
} 

};

+0

你的回答很有幫助,但在我的情況下,我註冊了許多動作差不多7個動作,你是否認爲對於我希望聽的每一個動作,在所有廣播接收機或廣播接收機上使用廣播接收機更好? – rmaik

+0

在大多數情況下,一個BroadcastReceiver就是你想要的。如果這解決了您的問題,請務必將其標記爲答案。 – Templerschaf