Я работаю над приложением, которому нужно предоставить сокет Bluetooth Server для другого устройства.
Устройство, с которым мне приходится работать, устанавливает соединение, игнорирующее uuid, и ищет только устройства с правильным именем службы.
Я открываю BluetoothServerSocket с помощью следующей команды:
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
tmp = mBluetoothAdapter.listenUsingRfcommWithServiceRecord("PWAccesP", uuid);
Моя проблема в том, что имя_службы не публикуется Android SDP. Когда я запрашиваю доступные службы с помощью sdptool, я получаю следующий вывод:
...
Service RecHandle: 0x10008
Service Class ID List:
UUID 128: 00001101-0000-1000-8000-00805F9B34FB
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 6
Таким образом, служба доступна, но имя службы отсутствует в списке, и мое устройство не может подключиться.
Я работаю с HTC Wildfire с Android 2.1.
Мой вопрос сейчас таков: это проблема стека HTC Bluetooth, это проблема Wildfire или проблема Android 2.1?
К сожалению, у меня нет других телефонов для проверки, поэтому я прошу сообщество помочь мне здесь ... Кто-нибудь сталкивался с этим раньше или знает, как заставить имя службы появляться?
Btw:
Мне удалось проверить, что BluetoothSocketServer подключается с помощью другого устройства, которое подключается с помощью uuid, а не по имени службы.
Спасибо и всего наилучшего,
Michael