将ELM 327连接到Android(蓝牙) - 获取UUID

时间:2015-12-08 19:56:51

标签: android bluetooth elm327

我从互联网上获得了以下代码

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开发的新手。

2 个答案:

答案 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.