Это возможно, если устройство уже подключено.Вызовите метод removeBond()
, чтобы очистить предыдущее состояние соединения.
device.removeBond();
Для проверки состояния соединения BluetoothDevice используйте getBondState()
.
Частота успешных соединений Ble gatt для каждого устройства разная.Вам может потребоваться отключить скрытый метод, если ваше соединение постоянно прерывается.
Пожалуйста, прочитайте это: BLE Device Bonding автоматически удаляется в Android
Метод unpairDevice()
отключит соединение Bluetooth.
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
for (BluetoothDevice bt : pairedDevices) {
if (bt.getName().contains("String you know has to be in device name")) {
unpairDevice(bt);
}
}
// Function to unpair from passed in device
private void unpairDevice(BluetoothDevice device) {
try {
Method m = device.getClass().getMethod("removeBond", (Class[]) null);
m.invoke(device, (Object[]) null);
} catch (Exception e) { Log.e(TAG, e.getMessage()); }
}