我使用
Android中的connectGatt()方法连接到BLE设备.这非常有效.
当我断开连接时,请使用以下内容:
private void disconnectDevice() {
gatt.disconnect();
}
当我收到回调时,我会收尾.
private BluetoothGattCallback gattCallback = new BluetoothGattCallback() {
@Override
public void onConnectionStateChange(BluetoothGatt gatt,int status,int newState) {
switch (newState) {
case BluetoothProfile.STATE_CONNECTED:
Log.d("BLED-GATT","STATE_CONNECTED");
setUIConnectionStatus("Discover services on device...",Color.YELLOW);
checkEnableAddButton(simpleTrackEditText.getText().toString());
gatt.discoverServices();
break;
case BluetoothProfile.STATE_DISCONNECTED:
Log.d("BLED-GATT","STATE_DISCONNECTED");
setUIConnectionStatus("Not Connected!",Color.RED);
gatt.close();
break;
default:
Log.d("BLED-GATT","STATE_OTHER");
}
}
}
这是执行的,我在调用disconnectDevice()后无法再控制设备.设备本身似乎认为它仍然连接,因为我无法将其置于广播可见性模式(如果它已经有连接就会发生).但是,如果我终止应用程序并再次打开它,那么我可以将设备设置为广播模式.这告诉我应用程序未正确断开连接.
知道我错过了什么吗?