我从互联网上获得了以下代码
try {
BluetoothDevice device = btAdapter.getRemoteDevice(bdDevice.toString());
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
socket = device.createInsecureRfcommSocketToServiceRecord(uuid);
socket.connect();
Toast.makeText(MainActivity.this,"socket bonded", Toast.LENGTH_LONG).show();
} catch(Exception e) {
tv.setText(e.toString());
}
当然uuid是一个随机代码,例如,所以我如何获得所需的uuid?它应该是我的ELM327设备或其他uuid的uuid吗?对不起,我是uuid事物和android开发的新手。
答案 0 :(得分:1)
在这种情况下,UUID不是“随机代码”,而是蓝牙串口服务配置文件的识别密钥。
答案 1 :(得分:1)
我刚检查了我之前项目中使用的UUID,它是一样的。 我像这样使用它
try {
mSocket = device.createRfcommSocketToServiceRecord(UUID
.fromString("00001101-0000-1000-8000-00805F9B34FB"));
mSocket.connect();
} catch (IOException e) {
}
当我开发App时,它工作得很好。
但市场上出售的ELM327设备存在问题。有时会配对。
也许您应该使用getAddress()函数而不是bdDevice.toString()
getAddress 将为该设备提供唯一的mac。
public String getAddress ()
Added in API level 5
Returns the hardware address of this BluetoothDevice.
For example, "00:11:22:AA:BB:CC".
getRemoteDevice 需要设备地址
getRemoteDevice(byte[] address)
Get a BluetoothDevice object for the given Bluetooth hardware address.