我想在蓝牙启用时执行一些操作。要启动它,我调用 bluetoothAdapter.enable();
上
bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
,
但蓝牙
不会立即启用 - 大约需要2-3秒
。是否有任何通用模式可以做到这一点,或者我应该通过某种方式实现 Observer
?
问候
最佳答案
1) 在您的 list 中注册一个接收器 BLUETOOTH STATE CHANGE
行动。
行动:- <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
2) 在状态更改时,您的接收器会被调用,您可以检查当前的状态开/关并执行您的任务。
权限:- <uses-permission android:name="android.permission.BLUETOOTH" />
如果你想在本地 Activity 中需要它,你可以在你的 Activity 中注册接收器,如下所示。
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:
setButtonText("Bluetooth off");
break;
case BluetoothAdapter.STATE_TURNING_OFF:
setButtonText("Turning Bluetooth off...");
break;
case BluetoothAdapter.STATE_ON:
setButtonText("Bluetooth on");
break;
case BluetoothAdapter.STATE_TURNING_ON:
setButtonText("Turning Bluetooth on...");
break;
}
}
}
};
如果想监听状态变化,直到您的应用程序安装在手机中。正如我上面所说,将其注册在 list 中。
关于java - 蓝牙打开时通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26844600/