我正在開發一個應用程序,我必須連接到藍牙設備。如何在Android中連接藍牙設備?
我可以掃描藍牙設備並列出配對ListView。
我想在ListView上單擊設備時連接到藍牙設備。
此java代碼是當我單擊ListView上的設備項目時的操作。
pair_devices_list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
AlertDialog.Builder deviceInfo = new AlertDialog.Builder(DeviceList.this);
mBluetoothAdapter.cancelDiscovery();//stop scan
String info = ((TextView) arg1).getText().toString();
String address = info.substring(info.length()-18);
BluetoothDevice connect_device = mBluetoothAdapter.getRemoteDevice(address);
try {
BluetoothSocket socket = connect_device.createRfcommSocketToServiceRecord(my_UUID);
socket.connect();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
當我執行的應用程序,它總是當我輸入下面的代碼crase:
BluetoothDevice connect_device = mBluetoothAdapter.getRemoteDevice(address);
但是,當我改變字符串「address
」的地址device.getAddress
,它工作正常。
我顯示字符串address
。 它的內容是藍牙設備的MAC地址,但它的類型是字符串。
和getRemoteDevice
這裏我選擇字符串的類型。
所以我不爲什麼APP使用字符串時總是崩潰address
???