Подключение ELM 327 к Android (Bluetooth)- Получение UUID
Я получил следующий код из интернета
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? Это должен быть UUID моего устройства ELM327 или другой UUID? извините, я новичок в UUID и разработке Android.
2 ответа
В этом случае UUID является не "случайным кодом", а идентифицирующим ключом для профиля службы последовательного порта Bluetooth.
Я только что проверил UUID, который использовал в предыдущем проекте, и он такой же. я использовал это так
try {
mSocket = device.createRfcommSocketToServiceRecord(UUID
.fromString("00001101-0000-1000-8000-00805F9B34FB"));
mSocket.connect();
} catch (IOException e) {
}
он отлично работал, когда я разработал приложение.
но доступное на рынке устройство ELM327 было проблематичным.
возможно, вам следует использовать функцию getAddress() вместо bdDevice.toString ()
getAddress выдаст макинтош, который будет уникальным для устройства.
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.