你提到有這個問題是非常有用的,因爲它提供了一個情況,以.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地址中進行硬編碼。
如果您在連接時遇到問題,那麼您需要具體瞭解實際發生的情況;即您遇到了什麼異常,等等。