使用rxandroidble无法在蓝牙模式下连接到huawei P9

时间:2017-11-14 15:02:33

标签: android bluetooth-lowenergy rxandroidble

我使用了很多设备成功使用了polidea库(1.4.2),但是,华为P9根本无法连接。 我可以分享的代码如下:

public Flowable<Integer> connectToRobot(String address) {
    initBleDevice(address);
    initInternalLibrary(); -> cannot share code for this.
    return RxJavaInterop.toV2Flowable(rxBleDevice.establishConnection(false))
            .observeOn(AndroidSchedulers.mainThread())
            .delay(5, TimeUnit.SECONDS)
            .doOnNext(conn -> connection = conn)
            .flatMap(new Function<RxBleConnection, Publisher<Observable<byte[]>>>() {
                @Override
                public Publisher<Observable<byte[]>> apply(@NonNull RxBleConnection conn) throws Exception {
                    return RxJavaInterop.toV2Flowable(connection.setupNotification(UUID.fromString(notifyCharacteristic)))
                            .observeOn(AndroidSchedulers.mainThread())
                            .doOnNext(observable -> internalMethod()// cannot share)
                            .doOnNext(observable -> observable.subscribe(new Action1<byte[]>() {
                                @Override
                                public void call(byte[] bytes) {
                                    //internal code
                                }
                            }, new Action1<Throwable>() {
                                @Override
                                public void call(Throwable throwable) {
                                    Log.e(TAG, "Throwable in receiving byte data." + throwable);
                                }
                            }))
                            .onErrorResumeNext(throwable -> {
                                return Flowable.error(new RobBleCoreException(throwable));
                            });
                }
            })

 private void initBleDevice(String address) {
    this.rxBleDevice = rxBleClient.getBleDevice(address);
}

我认为延迟会解决问题,但似乎不是。 任何人都可以告诉我为什么这段代码可以使用很多设备:

  • 三星S6,7Edge - Android 7
  • Pixel - 8.0
  • Moto E4 - Android 6
  • 华为平板电脑 - Android 4.4.2
  • ......其他设备

但无法使用华为P9(型号EVAL-L19)Android 7以及P8,Android 6或7.0(不确定,我正在等待详细的错误报告)。 在调试期间,我注意到收到了断开连接异常。

 exception:cc.robart.bluetooth.sdk.exceptions.RobBleCoreException: BleDisconnectedException{bluetoothDeviceAddress='34:15:13:E2:18:CA'}

0 个答案:

没有答案