2010-12-21 39 views
2

我試圖用我的電腦連接我的Nexus One與Android版本2.2.1,並使用終端程序,如Windows終端或超級終端進行通信。要做到這一點,我相信我需要設置一個串行串行通信端口。我配對了這些設備。當我在我的電腦上進行藍牙 - >設置 - >「添加COM端口」時,android設備不顯示。Android 2.2。如何設置串口(com,rfcomm)端口?

我錯過了什麼?

Android 2.2.1是否支持spp?該文件說明了。

我需要root來添加spp嗎?

有沒有人成功過?

我最終的目標是編寫一個android應用程序,它需要與需要com端口的老式藍牙設備進行通信?讓android與pc進行通信是一個臨時步驟。

我已經嘗試了一切,我可以想到在我的Android應用程序連接到我的電腦和Android設備,但一直沒有成功。我的android應用程序與Serial over Bluetooth submitted by xCaffeniated基本相同,但評論較少。有什麼建議麼?

回答

2

嘗試從BluetoothChat示例應用程序開始。然後,您將不得不改變使用通用SPP UUID的UUID,

00001101-0000-1000-8000-00805F9B34FB

從這一點來說,你幾乎有你需要的一切。

我在BluetoothChat程序中遇到了問題。所以我需要使用設置菜單將我的電腦配對,然後輸入BluetoothChat程序。在BTChat中進入菜單並點擊連接到設備,選擇您的計算機。我只能說我正在使用的Windows XP SP3。此時在我的機器上,我收到一個彈出的任務欄,詢問我是否希望允許我的設備作爲串口連接。我允許它。現在,您的手機將作爲計算機上的串行端口配置文件關聯,您可以將其與特定的com端口相關聯。

+1

扎克, 感謝您的回答。現在我已經學到了更多,我相信它會起作用。我採取了不同的方法,並編寫了一個簡單的藍牙程序。看到我的帖子在stackoverflow.com(http://stackoverflow.com/questions/2660968/how-to-prevent-android-bluetooth-rfcomm-connection-from-dying-immediately-after/4542466#4542466)的源代碼。展望未來,我認爲程序員可以用BlueToothChat例子和'simple comm'程序來調試大多數藍牙Rfcomm問題。 – fishjd 2011-01-13 15:36:08

2

基於藍牙規範,

http://www.bluetooth.com/SiteCollectionDocuments/SPP_SPEC_V12.pdf

2.3用戶要求,」 ...任何遺留應用可以被任一設備上運行時,使用虛擬串口作爲如果有一個真正的串行電纜連接兩個設備(使用RS232控制信號)「。在4.3遠程端口協商中,「......如果RFCOMM適配層的API暴露於這些設置(例如波特率,奇偶校驗),則需要這麼做...... RFCOMM本身不會人爲地限制基於波特率設置,...「

在我看來,由於Android(2.2)不提供設置和打開串口的API,只要您可以發現遠程BT設備並製作與它的連接。我已經嘗試過了,它似乎與工作:

...

襪子= device.createRfcommSocketToServiceRecord(myUUID); sock.connect();

...

其中最終的UUID myUUID = UUID。fromString( 「00001101-0000-1000-8000-00805F9B34FB」);您可能需要照顧藍牙權限,並安裝在你的應用程序中

http://developer.android.com/guide/topics/wireless/bluetooth.html

描述可能有一些問題與connect()調用,即服務不可用或連接被拒絕,這可能通過確保解決:

  1. 遠程BT設備被發現,並
  2. 必須設置爲使用PIN碼(例如0000),和
  3. 必須成功配對的Wi您的Android設備

這些步驟必須在運行您的應用程序(已連接呼叫)之前完成。

希望得到這個幫助。

喬治

1

肯定是有關於AT組是如何在AOS實現一些有趣的業務。問題在於,很難知道您是否直接與Modem或多個抽象層(更可能)進行對話。對於最先進的最新審查AT命令的AOS平臺上可用,再加上漢王,請看到帖子:

「如何向調制解調器使用AT命令」 http://forum.xda-developers.com/showthread.php?t=1471241