createRfcommSocketToServiceRecord не работает на андроид 4.4

Рейтинг: 0Ответов: 0Опубликовано: 29.04.2015

Устанавливаю связь по bluetooth с elm327.

UUID uuid = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");
btDevice.createInsecureRfcommSocketToServiceRecord(uuid);
_socket.connect(); 

Этот код прекрасно работает и держит соединение на устройстве с андроид 4.2, а на 4.4 соединение не устанавливается. В сети есть решение с использованием след кода:

Method m = btDevice.getClass().getMethod("createRfcommSocket", int.class);
_socket = (BluetoothSocket) m.invoke(btDevice, 1);

Соединение устанавливается, но оно не устойчивое, может и через несколько секунд оборваться, а может и через несколько минут. (т.е. при записи в OutStream возникает ошибка broken pipe). Буду рад любым советам.

Ответы

Ответов пока нет.