我想用
RxBluetooth
在两台android设备之间传输一些文本。
我可以扫描和查看附近的设备,但在尝试连接其中一个设备时,我面临以下失败:
D/蓝齿乌贼:
IsSocketAllowedBySecurityPolicy启动:设备为空
带蓝牙适配器:
调用了getBluetoothService(),但没有BluetoothManagerCallback
D/蓝牙插座:
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
}
})
两个设备都启用了蓝牙,因为我可以从另一个设备中发现一个。
我使用的权限是:
<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"/>
谢谢您。