Я хотел бы использовать RxBluetooth для передачи текста между двумя устройствами Android.Я могу сканировать и видеть близлежащие устройства, хотя при попытке подключиться к одному из них я сталкиваюсь со следующей ошибкой:
D / BluetoothUtils: isSocketAllowedBySecurityPolicy start: device null
W / BluetoothAdapter: getBluetoothService () вызывается без BluetoothManagerCallback
D / BluetoothSocket: connect (), SocketState: INIT, mPfd: {ParcelFileDescriptor: FileDescriptor [65]}
java.io.IOException: чтение не удалось, сокет может быть закрыт или истекло время ожидания, чтение ret: -1
Этокод, который я запускаю для установления соединения с выбранным BluetoothDevice
:
mRxBluetooth.observeConnectDevice(bluetoothDevice, UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"))
.subscribeOn(mSchedulerProvider.io())
.observeOn(mSchedulerProvider.ui())
.subscribe(new Consumer<BluetoothSocket>() {
@Override
public void accept(BluetoothSocket bluetoothSocket) throws Exception {
// Unable to reach here.
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
// I reach this point with the message:
// java.io.IOException: read failed, socket might closed or timeout, read ret: -1
}
})
Bluetooth включен на обоих устройствах, так как я могу обнаружить одно из другого.
Разрешения, которые я использую:
<uses-feature
android:name="android.hardware.bluetooth_le"
android:required="true"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
Спасибо.