Я занимаюсь разработкой приложения, которое использует Bluetooth для подключения к устройству и отправки / получения данных. Я провожу все свои тесты с телефоном Nexus One.
Мне никогда не удавалось установить соединение SPP (последовательный порт) от моего телефона к любому устройству. Тем не менее, я смог подключиться к устройству (моему ноутбуку) к моему телефону, используя эквивалент PuTTY для Mac (единственное исключение - приложение Bluetooth File Transfer из Marketplace, похоже, работает , но я не думаю, что использует RFCOM / SPP ...).
Я продолжаю видеть это сообщение в моих журналах LogCat:
ERROR/BluetoothService.cpp(78): stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session)
а также эти:
java.io.IOException: Operation Canceled
java.io.IOException: Software caused connection abort
Я пытался использовать UUID "00001101-0000-1000-8000-00805F9B34FB", а также пытался использовать:
Method m = device.getClass().getMethod("createRfcommSocket", new Class[] { int.class });
sock = (BluetoothSocket) m.invoke(device, Integer.valueOf(1));
метод вместо device.createRfcommSocketToServiceRecord(UUID);
тоже - без удачи.
Я использую пример BluetoothChat и варианты этого кода для всех моих испытаний ...
Решения или предложения были бы хорошими ... или даже лучшим / менее сложным примером некоторого тестового кода, который я могу запустить на телефоне, или сценария Python или чего-то, что я могу запустить на своем компьютере, чтобы помочь отладке?
Спасибо! Я надеюсь, что это не ошибка в ОС Android, но если это так, я надеюсь найти обходной путь.
РЕДАКТИРОВАТЬ: Я также должен отметить, что большинство устройств отображаются как «сопряженные, но не подключены» в настройках Bluetooth.
РЕДАКТИРОВАТЬ 2: Решение, похоже, заключается в простом отключении любого прослушивания Bluetooth. См. Мой пост для получения дополнительной информации.