【问题标题】:How to use extras from the intent如何使用意图中的额外内容
【发布时间】:2015-11-17 01:01:10
【问题描述】:

我正在学习如何在安卓系统中使用蓝牙,我为BluetoothAdapter.ACTION_STATE_CHANGED 注册了一个BroadCastReceiver。 在文档中,它说

广播操作:本地蓝牙适配器的状态已更改。 例如,蓝牙已打开或关闭。 始终包含额外字段 EXTRA_STATE 和 EXTRA_PREVIOUS_STATE
分别包含新旧状态。

现在,我该如何使用 EXTRA_STATE 和 EXTRA_PREVIOUS_STATE?

【问题讨论】:

标签: android android-intent bluetooth broadcastreceiver intentfilter


【解决方案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;
        }
    }
}

};

【讨论】:

  • 你的回答很有帮助,但在我的情况下,我注册了许多动作,几乎 7 个动作,你认为最好在广播接收器上用于所有人还是在广播接收器上用于每个动作我想听吗?
  • 在大多数情况下,您想要一个 BroadcastReceiver。如果这解决了您的问题,请确保将其标记为答案。
猜你喜欢
  • 2015-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多