我怎样才能得到BleScanException的原因?

时间:2017-01-22 19:45:35

标签: android rx-android rxandroidble

我第一次尝试使用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; 
}

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

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

非常感谢有关此方法的任何其他评论。

1 个答案:

答案 0 :(得分:0)

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

只需查看源文件,即可了解BleScanException

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