Подключение к уже подключенному устройству Bluetooth

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

Поэтому я должен подключить пользователя к уже подключенному устройству Bluetooth. Но ни одно из моих усилий не сработало. Я попытался запустить процесс сопряжения снова, используя:

tmp = device.createRfcommSocketToServiceRecord(MY_UUID);

а также следующее:

Method m = mmDevice.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
mmSocket = (BluetoothSocket) m.invoke(mmDevice, 1);

это тот, который я реализовал, и единственный работающий способ связать мой телефон с моим встроенным устройством Bluetooth

Итак, мой вопрос:

  • Могу ли я отключить сопряженное устройство, а затем подключиться к другому встроенному устройству? Я пытался.. просто подключиться к новому устройству, но я не могу заставить это работать

1 ответ

Решение

Боюсь, я не совсем уверен, в чем твоя проблема. Не получается ли создать сокет для уже подключенного устройства Bluetooth?

Прежде всего, если устройство уже сопряжено, вам не нужно снова запускать процесс сопряжения. Вам просто нужно создать сокет для связи, который не будет работать, если устройство недоступно для связи. В последнее время я занимался этим и использовал следующий код, который отлично сработал для меня:

    try {
        Method m = device.getClass().getMethod("createRfcommSocket",
                new Class[] { int.class });
        BluetoothSocket mySocket = (BluetoothSocket) m.invoke(device, Integer.valueOf(1));

    } catch (<VARIOUS EXCEPTIONS>) {
        //Do stuff
    }

Чтобы предложить пользователю выбрать какое устройство, вы можете запросить BluetoothAdapter для всех сопряженных устройств:

Set<BluetoothDevice> bondedDevices = BluetoothAdapter
            .getDefaultAdapter().getBondedDevices();

Наконец, можно создавать подключения к нескольким устройствам одновременно - посмотрите здесь: Android Bluetooth API подключается к нескольким устройствам

Другие вопросы по тегам