2012-03-15 63 views
2

我試圖連接到RFID閱讀器設備。我能夠通過創建的BluetoothSocket,並呼籲將其連接如下面連接到它(許多細節省略):RFID在BluetoothSocket中獲得串行連接

public static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 
BluetoothSocket socket = device.createRfcommSocketToServiceRecord(MY_UUID); 

該作品不多預期,並且與設備的連接可以建立。

我的問題是,設備API被設計爲與串行端口一起使用。爲了使用API​​,我將它傳遞一個字符串,它看起來像這樣:

String uri = "eapi:///com1"; 

Android不出現打開串口達到世界這樣。在Linux上我希望能夠能夠用繩子連接,如:

String uri = "eapi:///dev/ttyS0"; 

通過手機上的/ dev目錄展望顯示這樣的事。此外,當我建立連接時,/ dev中的條目不會改變。這使我相信,Android在連接到藍牙設備時不會在/ dev中創建串行設備。

如何訪問BluetoothSocket用來連接設備的com端口?在android上是否有像com1或/ dev/ttyS0這樣的虛擬設備?

使用類RfcommSocket的API的老版本有一個getPort()和getFileDescriptor()方法可能會幫助我。目前的藍牙套接字似乎隱藏了這些細節。

在此先感謝!

編輯: 事實證明,Android根本不會爲串行流創建虛擬設備。相反,我直接將我的客戶端代碼與bluetoothsocket集成。

回答

0

那麼,如果你有原始的藍牙套接字,並且它已連接,爲什麼不直接在你的代碼中手動處理數據格式化/轉換並將它發送給另一方而無需串行流呢? Android OS AFAIK支持有限數量的藍牙配置文件。