2010-02-15 74 views
3

我有一個藍牙服務,我在Windows機器上爲.Net編程,我希望我的Android 2.1手機連接到它。服務器正在監聽Android用於連接的相同UUID。但連接失敗。Android藍牙跨平臺互操作性

當我嘗試連接到沒有監聽該UUID的設備時,我收到一條消息「服務發現失敗」的異常,但是當我嘗試連接到正在偵聽正確UUID的服務器時,盒彈出說:

「有與藍牙設備配對問題。」

我收到一個異常消息「Connection timed out」。所以它看起來像服務器和Android正在進行通信,但握手期間會出現某種失敗。我知道Android要求服務器與電話配對,並且還要加密通信信道。有誰知道使用哪種規格來做到這一點?我很想讓我的服務器正確響應連接嘗試。

謝謝!

回答

1

我想通了哪裏出了問題。問題在於,在嘗試建立連接之前,必須先將遠程設備與Android配對,因爲配對對話並不總是有效。我不確定該錯誤是在Android端還是在其他設備端,但我從來沒有看到要求輸入驗證碼或在任一設備上顯示驗證碼的對話框。所以看起來這裏有一些兼容性問題。但是如果你事先將設備配對,那麼連接就可以工作。

1

你說得對。在嘗試使用BluetoothChat示例程序連接到RS232設備時,我遇到了同樣的問題。

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 - 一旦通過藍牙設置,沒有問題的結合。連接完美,程序正常工作。

我試圖自己檢查一下Android源代碼,但考慮到我是一個新手,這有點困難。如果有經驗的人可以解決問題,那會很棒。

1

要回答托馬斯 - 最高人民檢察院(串行端口配置文件)的個人資料被打破幾個HTC的Android機型,甚至2.1版本,但它不是模型中是一致的。

HTC Desire - 不起作用。
HTC Legend - 糟糕,但一段時間工作? 帶定製ROM的HTC Hero - 有些功能不錯,有些功能不是很完美,有些功能在同一時間發聲時很糟糕。

0

以前所有的答案都在印記上;基本上,連接之前需要配對。

但是,即使在配對之後,我仍然遇到了錯誤。 (我第一次嘗試連接時沒有配對)。

解決方法是重新啓動手機一次。現在它可以連接到配對的設備了。聽起來很簡單,但我花了一段時間調試它。希望對那裏的人有用。