2010-02-15 3 views
3

У меня есть служба Bluetooth, которую я запрограммировал для .Net на компьютере с Windows, и я хотел бы, чтобы мой телефон Android 2.1 подключился к нему. Сервер прослушивает тот же UUID, который Android использует для подключения. Но соединение не работает.Совместимость с кросс-платформенной платформой Bluetooth Bluetooth

Когда я пытаюсь подключиться к устройствам, которые не прослушивают этот UUID, я получаю исключение из сообщения «Ошибка службы», но когда я пытаюсь подключиться к серверу, который прослушивает правильный UUID, сообщение ящик всплывает, говоря:

«Проблема была связана с устройством Bluetooth».

И получаю исключение с сообщением «Время ожидания подключения». Таким образом, похоже, что сервер и Android общаются, но в процессе установления связи есть какой-то провал. Я знаю, что Android требует, чтобы сервер был сопряжен с телефоном, а также шифровал канал связи. Кто-нибудь знает, какие спецификации используются для этого? Я хотел бы, чтобы мой сервер правильно ответил на попытку подключения.

Спасибо!

ответ

1

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

1

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

1- Если не связан, я получаю две ошибки подряд:

03-03 13:38:20.020: ERROR/BluetoothService.cpp(2077): stopDiscoveryNative: D-Bus error in StopDiscovery: org.bluez.Error.Failed (Invalid discovery session) // Probably because we're calling cancelDiscovery() as a "security" (it's already been cancelled at some point beforehand) 
03-03 13:38:20.040: ERROR/BluetoothEventLoop.cpp(2077): onCreateDeviceResult: D-Bus error: org.bluez.Error.AlreadyExists (Device already exists) // This I don't understand 

2- После того, присоединенный через настройку Bluetooth, без проблем. Соединение выполнено отлично, и программа работает.

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

1

Чтобы ответить Томасу - Профиль профиля SPP (Serial Port Profile) разбит на нескольких моделях HTC Android, даже версий 2.1, но он не является согласованным среди моделей.

HTC Desire - не работает.
HTC Legend - Плохо, но работает какое-то время? HTC Hero с обычными ROM-файлами - Некоторые работают хорошо, некоторые совсем не работают, а некоторые плохо работают одновременно.

0

Все предыдущие ответы находятся на отметке; по сути, для соединения требуется сопряжение.

Однако, я получал ошибку даже после спаривания. (Я сначала попытался подключиться без спаривания).

Обходной путь состоял в том, чтобы перезагрузить телефон один раз. И теперь он может подключиться к парному устройству в порядке. Звучит просто, но я потратил довольно много времени на его отладку. Надеюсь, полезно кому-то там.

Смежные вопросы