我在做什麼: 我正在研究一個應用程序,該應用程序將使用SPP使用藍牙從生物識別設備獲取數據。爲此,我有一些命令(以字節和HEX格式)和生物識別設備製造商提供的步驟。Android藍牙插座
我的問題: 我必須按照2個步驟獲取數據,即一個接一個地發送兩個命令。生物識別設備在接收到第二個命令時返回數據。我已成功建立與設備的連接並執行第一條命令,但是當我向設備發送第二條命令時,應用程序卡住了,並且經過一段時間生物特徵識別設備終止連接並收到IO異常:套接字已關閉,不明白第二條命令上發生了什麼。
我做: 我已經在Android SDK中提供的樣品例如Bluetooth Chat根據我的要求,即我送這個函數命令使用BluetoothChatService.class和修改ConnectThread線程的run函數。並使用「00001101-0000-1000-8000-00805F9B34FB」UUID。用於連接到插座我曾嘗試以下代碼:
if (Build.VERSION.SDK_INT > 9) {
tmp = device.createInsecureRfcommSocketToServiceRecord(MY_UUID);
}
else {
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
}
而且
Method m = device.getClass().getMethod("createRfcommSocket",
new Class[] { int.class });
tmp = (BluetoothSocket) m.invoke(device, Integer.valueOf(1));
而且
tmp = device.createRfcommSocketToServiceRecord(MY_UUID);
任何一個知道我在哪裏錯了?
預先感謝您。 但其中一個可以解決我的問題。
編輯 我已經解決了這個問題。這是方法我是誰建立socket連接
if (Build.VERSION.SDK_INT < 10){
Method m = device.getClass().getMethod("createRfcommSocket",new Class[] { int.class });
tmp = (BluetoothSocket) m.invoke(device, Integer.valueOf(1));
}
其他{ TMP = device.createRfcommSocketToServiceRecord(MY_UUID); }
我有檢查提供的文件,它沒有指定和安全要求。我正在測試這個HTC慾望,HTC慾望高清和三星Galaxy Tab 10.1。 –