Android Bluetooth API подключается к нескольким устройствам
Можем ли мы подключить несколько устройств? кто может поделиться кодом для меня! Эта проблема беспокоила меня давно! Спасибо!
5 ответов
Я бы сказал, что код не проблема. Правильная реализация - это управление потоком для каждого соединения, однако я обнаружил, что количество устройств, к которым вы можете подключиться одновременно, ограничено в зависимости от реализации Bluetooth в телефоне. Спецификация Bluetooth гласит, что можно подключить 7 устройств, однако я обнаружил, что телефоны Android могут обрабатывать только 1 соединение Bluetooth, а другие могут обрабатывать 6. Это действительно помогло бы сообществу разработчиков Bluetooth, если бы кто-то из команды разработчиков Android мог бы углубиться здесь.
Да, вы можете настроить несколько соединений Bluetooth (по крайней мере, соединения RFCOMM). Просто используйте альтернативный поток для вашего соединения, и он будет работать нормально (я думаю) См. Также: http://developer.android.com/resources/samples/BluetoothChat/index.html
Редактировать закомментированный макет не читается: в функции connectThread измените:
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
чтобы:
Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class});
tmp = (BluetoothSocket) m.invoke(device, 1);
Да, чтобы подключить несколько устройств в разъеме Bluetooth-сервер может попробовать эту библиотеку
Для создания множественного соединения вы должны создать отдельный поток для каждого устройства, которое вы хотите подключить. Каждый поток имеет отдельные методы для чтения и записи данных на удаленное устройство.
см эту ссылку
Как сказал Барри, вы можете подключиться к нескольким устройствам. Просто создайте новую тему для каждого соединения. Вам понадобится список "ConnectThread" и "ConnectedThread", которые вы отслеживаете. Так что вам нужно только адаптировать его для нескольких потоков (и, конечно, реализовать возможность выбора нескольких устройств). Я сделал это, и это не так уж сложно.
Если вы хотите подключиться к устройству, а затем подключиться к другому (одно за другим с использованием оригинального меню), то вам, возможно, придется проделать дополнительную работу.