2012-02-06 56 views
3

作爲Android編程的初學者,我有一個問題: 我想從連接到微處理器的藍牙/串行模塊接收數據(兩個字節)。這些數據應該打印到屏幕上,每秒更新一次。我發現這已經是:How to prevent Android bluetooth RFCOMM connection from dying immediately after .connect()? 哪應該是一個工作代碼,但什麼都沒有發生。 我將mac地址更改爲00:11:12:05:03:67,這應該與我的藍牙模塊一致。簡單的藍牙數據接收器Android

我是否完全朝着這個方向走錯了方向?我想我想要的是非常基本的:只是通過藍牙進行簡單的單向數據傳輸。

任何想法將非常感激。

最良好的祝願,

凱文

回答

5

你提到有這個問題是非常有用的,因爲它提供了一個情況,以.createRfcommSocketToServiceRecord()通常調用失敗上班一種解決方法。我已經親自在我正在執行的一個項目中使用該解決方案解決方案。我所做的是我首先嚐試撥打.createRfcommSocketToServiceRecord(),如果失敗,我的代碼將嘗試連接.getClass().getMethod("createRfcommSocket", new Class[]{int.class});解決方法。在嘗試使用多種藍牙到串行PCB之後,其中一些PCB往往有點「尷尬」,而後者反射方法在.createRfcommSocketToServiceRecord()不適用時有效。

但是 ......雖然你提到的這個問題確實提供了一個非常有用的簡潔的代碼片段,但我認爲它不是你開始的最佳位置。你應該開始的地方是Android's Bluetooth documentation,它很好地解釋了整個過程,包括如何使用單獨的Threads來處理髮現,連接等。事實上,使用Bluetooth Chat source code開始真的很容易。使用它,您可以快速啓動並運行並連接到藍牙串行模塊。你只需要確保你改變UUID到串行端口配置文件(SPP)要求:

private static final UUID MY_UUID = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); 

,希望能足以有一個簡單的應用程序,它會跟你的藍牙串口模塊。藍牙聊天示例應用程序還爲您提供處理設備發現,配對以及所有優點的對話框,因此您不必像以往一樣在設備的MAC地址中進行硬編碼。

如果您在連接時遇到問題,那麼您需要具體瞭解實際發生的情況;即您遇到了什麼異常,等等。

相關問題