如何解决多个 BLE 连接并显示单个 BLE 连接状态
通过学习 official Android BLE demo App,我成功实现了多个 BLE 连接和接收数据(多个 BLE 设备使用相同的 BluetoothLeService)。但是,在 DeviceControlActivity 类中,所有设备的连接状态都是“全部连接”或“全部未连接”(见下面的代码)。
如何更改代码以便了解设备的各个连接状态?
例如,设备 1 = 已连接,设备 2 = 未连接。
private final broadcastReceiver mGattUpdateReceiver = new broadcastReceiver() {
@Override
public void onReceive(Context context,Intent intent) {
final String action = intent.getAction();
if (BluetoothLeService.ACTION_GATT_CONNECTED.equals(action)) {
mConnected = true;
updateConnectionState0(R.string.connected);
updateConnectionState1(R.string.connected);
invalidateOptionsMenu();
Log.e(TAG,"ACTION_GATT_CONNECTED ");
} else if (BluetoothLeService.ACTION_GATT_disCONNECTED.equals(action)) {
Log.e(TAG,"WHEN IS ACTION GATT disCONNECTED");
mConnected = false;
updateConnectionState0(R.string.disconnected);
updateConnectionState1(R.string.disconnected);
invalidateOptionsMenu();
Log.e(TAG,"ACTION_GATT_disCONNECTED ");
clearUI();
} else if (BluetoothLeService.ACTION_GATT_SERVICES_disCOVERED.equals(action)) {
updateGattServices(mBluetoothLeService.getSupportedGattServices(0),0);
Log.e(TAG,"getSupportedGattServices() is done for device #0");
try {
Thread.sleep(700);
} catch (InterruptedException e) {
e.printstacktrace();
}
updateGattServices(mBluetoothLeService.getSupportedGattServices(1),1);
Log.e(TAG,"getSupportedGattServices() is done for device #1");
try {
Thread.sleep(700);
} catch (InterruptedException e) {
e.printstacktrace();
}
updateDATA();
} else if (BluetoothLeService.ACTION_DATA_AVAILABLE.equals(action)) {
mBluetoothLeService.readCharacteristic(mNotifyCharacteristic,0);
displayData(intent.getStringExtra(BluetoothLeService.EXTRA_DATA),"=====Get device #0 data ");
mBluetoothLeService.readCharacteristic(mNotifyCharacteristic1,1);
displayData(intent.getStringExtra(BluetoothLeService.EXTRA_DATA1),"=====Get device #1 data");
}
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。