我嘗試打開一個套接字來偵聽來自非android設備的連接。Obex推送配置文件的UUID
Parcelable[] uuidExtra = device.getUuids();
String t = uuidExtra[0].toString();
t = t.toUpperCase();
Log.i("UUID: ", t);
此codesnippet會給我的藍牙設備提供的服務的UUID。從logcat的輸出是:
00001105-0000-1000-8000-00805F9B34FB
我相信這是OBEX對象推送模式的UUID。我認爲這是因爲該設備的製造商告訴我該設備僅支持協議:Obex Push Profile。
當我嘗試在我Parcelable[]
陣列訪問例如第二元素,輸出只會
07-12 13:29:36.305: E/AndroidRuntime(6293): java.lang.ArrayIndexOutOfBoundsException: length=1; index=1
通過,我可以肯定地說,我的陣列只包含一個對象。
因此,以更多的Android特定藍牙的東西。
我'使用這個UUID是這樣的:
try {
tmp = adapter.listenUsingRfcommWithServiceRecord(device.getName(), UUID.fromString(t));
} catch (IOException e) {
Log.e(TAG, "FAILED BECAUSE: " + e.getMessage()); }
異常輸出以下,以logcat的:
FAILED BECAUSE: Not able to register SDP record for: "name of the device"
了幾個小時後,谷歌搜索這個例外,我還是想不通了解如何爲設備打開偵聽套接字。
有什麼建議嗎?提前致謝!
這似乎是在某些設備上間歇性發生的低級別藍牙問題,大多數遇到此異常的人員通過重新啓動設備或更新固件後解決了這個問題。 – BFil 2012-07-16 09:47:36
感謝您的回答,ShadowCloud!我試過重新啓動手機和藍牙設備,但沒有幫助。不管怎麼說,還是要謝謝你。 – 2012-07-17 11:01:57