2014-06-05 24 views
0

我需要從一個A & D醫療UA-767PBT(沒有結尾「C」)到一個簡單的Android應用程序的測量。 UA-767PBT使用SDP和SPP與接入點(我的Android平板電腦)進行通信。我有服務名稱,cod過濾器和pin。 我已經使用了BluetoothChat的例子,像一個起點,我修改了「listenUsingRfcommWithServiceRecord」使用正確的服務名稱,SPP UUID並設置了一個引腳,但應用程序仍然說「無法連接到設備」。 我在這裏讀過Can't accept an incoming bluetooth connection unless device is discoverable 關於港口問題的一些事情,但我不知道如何去做這些事情。連接到A&D UA-767PBT血壓

有人能夠連接到這個設備,並給我一些提示/示例請嗎?

謝謝

P.S.我剛剛連接到一個A & D UA-767PBT-C。

P.P.S.並且對不起我的英語:D

回答

0

第一次嘗試連接UA-767PBT時,您需要處於可發現模式。在啓用藍牙之後,將此代碼插入onCreate()中:

Intent discoverableIntent = new 
Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); 
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0); 
startActivity(discoverableIntent); 

這會使您的設備處於無時間限制的發現模式。您也可以直接在設備設置中進行設置:設置 - >藍牙 - >(右上角的菜單)可見性超時 - >永不超時

之後,您需要使用「listenUsingRfcommWithServiceRecord」創建BluetoothServerSocket然後接受像這樣的連接:

BluetoothSocket socket = null; 
socket = yourServerSocket.accept(); 

我在單獨的線程中執行此操作。希望對你有幫助!

+0

嗨, 對我來說,它不工作的方式。它僅在您第一次連接設備時起作用,其他時間不起作用。我注意到這可能是專用端口的問題。 你確定你有PBT而不是PBT-C嗎? – user261591

+0

是的,非常確定:)我發現多連接的問題是我曾經關閉serverSocket一旦連接。實際上,該設備似乎不斷連接和斷開...所以我只是保持serverSocket打開,我沒有問題了。爲了更好地解釋,參考開發人員網站,請勿調用「mmServerSocket.close();」試試這種方式,讓我知道! – user3726420

+0

嗨,謝謝你的回答!問題是設備沒有連接服務器:D我用listenusingrfcomm等打開服務器,設備連接服務器(不總是......)。但是,如果我重新啓動應用程序並打開具有相同屬性的同一臺服務器,則該設備無法再建立連接!我只在最後關閉服務器插座,在我進行測量後(如果我測量XD) – user261591