2015-12-08 4 views
2

я получил следующий код из ИнтернетаПодключение 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.

ответ

1

UUID в этом случае не является «случайным кодом», а идентифицирующим ключом для профиля обслуживания последовательного порта Bluetooth.

1

Я только что проверил 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.