0

我第一次尝试使用 RxAndroidBle。扫描特定类型设备的单个实例:

    static boolean scanForDevice() { 
    asScanSubscription = asBleClient 
            .scanBleDevices( asServiceId ) // returns Observable<RxBleScanResult>
            .first() 
            .map( rxBleScanResult -> rxBleScanResult.getBleDevice() ) // returns Observable of the one device
            .subscribe( bleDevice -> asBleDevice = bleDevice, // save in a variable
                        throwable -> { throw new BleScanException( 0 ); },
                        ( ) -> { throw new BleServiceNotFoundException( asServiceId ); } // didn't find it
                      );
    return true; 
}

我的问题在于订阅调用的“可抛出”代码。我希望能够抛出 BleScanException,但我不知道从哪里获得描述错误原因的正确整数参数。我怎样才能找到这个?

一般来说,我在哪里可以获得有关错误时传递给订阅者的特定 Throwable 的详细信息?

不胜感激有关此方法的任何其他评论。

4

1 回答 1

0

首先 -BleScanException由库使用,不应在其外部实例化。不幸的是,java 不允许隐藏构造函数,因此它不会从库外部可见。

您可以BleScanException通过查看源文件来了解相关信息。

最后 - 为什么你甚至需要创建一个BleScanException?它将为您创建并传递给onError(). 你应该在这个地方处理异常。

于 2017-01-22T21:08:08.463 回答