Отключение сопряженного устройства Bluetooth с помощью отражения и вызов метода «removeBond» не работает - PullRequest
1 голос
/ 25 июня 2019

Я использую метод removeBond из класса BluetoothDevice для отключения устройства в течение долгого времени. Но в большинстве устройств xiaomi это не работает.

Проверьте ниже код, который я использую:

            Set<BluetoothDevice> devices = mBluetoothAdapter.getBondedDevices();
        for (BluetoothDevice device : devices) {
            Log.i("DeletePairedDeviceByNm", "Found Device:" +
                    device.getName() + ", Looking for:" + BDName + "\n");
             if ((device.getName().trim().equals(BDName.trim()))) {

                Method m = device.getClass().getMethod("removeBond", (Class[]) null);

                Object value=m.invoke(device, (Object[]) null);
                if((boolean)value){
                    numberPairedDevicesDeleted++;
                }
            }
      }

И, насколько мне известно, это единственный метод, доступный для "несопряжения" подключенного устройства.

Есть ли что-то еще, что можно использовать? Пожалуйста, предоставьте мне ценный отзыв.

Заранее спасибо!

Некоторые протестированные устройства:

  • Xiaomi Mi Mix 3
  • Xiaomi Redmi Note 7
  • Xiaomi Redmi 6A
  • Xiaomi Mi Max 2
...