Подтвердить что ты не робот

Как программно отключить или удалить парное устройство Bluetooth на Android?

Проект должен использовать мой телефон Android для подключения к моим устройствам arduino. но как я могу устранить парные. Я вижу, что парный список хранится там, где bluetoothadapter может извлекаться в любое время.

PS: 1-й, я знаю, что долгое нажатие на сопряженное устройство будет его устранять.
но вопрос здесь в том, как я могу сделать это программно?

2nd, я проверил bluetoothdevice и bluetoothAdapter класс, нет никакой функции для реализации этого.

спасибо.

4b9b3361

Ответ 1

Этот код работает для меня.

private void pairDevice(BluetoothDevice device) {
    try {
        if (D)
            Log.d(TAG, "Start Pairing...");

        waitingForBonding = true;

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

        if (D)
            Log.d(TAG, "Pairing finished.");
    } catch (Exception e) {
        Log.e(TAG, e.getMessage());
    }
}

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());
    }
}

Ответ 2

отключить все устройства:

Set<BluetoothDevice> pairedDevices = mBluetoothAdapter.getBondedDevices();
        if (pairedDevices.size() > 0) {
            for (BluetoothDevice device : pairedDevices) {
                try {
                    Method m = device.getClass()
                            .getMethod("removeBond", (Class[]) null);
                    m.invoke(device, (Object[]) null);
                } catch (Exception e) {
                    Log.e("Removing has been failed.", e.getMessage());
                }
            }
        }

Ответ 3

в классе BluetoothService существует метод removebond() для несанкционированных, сопряженных устройств. Наконец, этот метод вызывает rmovebondnative().

Ответ 4

Мой телефон подключен к двум Bluetooth-наушникам с профилем HEADSET. Как я могу отключить только одну из Bluetooth-наушников.

Ответ 5

Если вы используете Kotlin:

fun removeBond(device: BluetoothDevice) {
    try {
        device::class.java.getMethod("removeBond").invoke(device)
    } catch (e: Exception) {
        Log.e(TAG, "Removing bond has been failed. ${e.message}")
    }
}

Ответ 6

Если вы хотите удалить пару Bluetooth-устройств, для этого в первую очередь вам необходимо отключить все устройство, а затем нажать кнопку "ОК", вы увидите, что все устройства удалены из списка.