Я пытаюсь подключиться к OBDsim и собрать некоторые данные.
Шаг 0. Paired my Android A7 and Linux Ubuntu 18.04's bluetooth adapter
Шаг 1. wget http://icculus.org/obdgpslogger/downloads/obdgpslogger-0.16.tar.gz
Шаг 2. tar -zxvf obdgpslogger-0.16.tar.gz
cd obdgpslogger-0.16
mkdir build
cd build
Шаг 3. sudo apt-get install libbluetooth-dev libfltk1.1-dev libfltk1.1 fltk1.1-doc fluid fftw3-dev libgps-dev libftdi-dev
cmake ..
make obdsim
cd ../bin/
Шаг 4. sudo rfcomm bind 0 ##:##:##:##:##:## 1 //MAC address of linux PC
sudo sdptool add SP
Шаг 5. ./obdsim -b -g gui_fltk
Простейший код
ArrayList<BluetoothDevice> DeviceList;
BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter();
Set<BluetoothDevice> pairedDevices = btAdapter.getBondedDevices();
if(pairedDevices.size() > 0)
{
for(BluetoothDevice device : pairedDevices)
{
DeviceList.add(device);
}
}
BluetoothDevice device = DeviceList.at(0); // it's my Linux Ubuntu Bluetooth device
UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
BluetoothSocket socket;
try
{
socket = device.createInsecureRfcommSocketToServiceRecord(uuid);
}
catch(IOException e)
{
e.printStackTrace();
}
try
{
socket.connect();
}
catch (IOException e)
{
e.printStackTrace();
return 0;
}
Сокет создается без каких-либо исключений, НО Он всегда терпит неудачу на socket.connet();
он говорит java.io.IOException: read failed, socket might closed or timeout, read ret: -1
Я также пытался с createRfcommSocketToServiceRecord
, но socket.connect()
все равно не удается.
Что я делаю не так?Пожалуйста помоги.