我第一次尝试使用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的详细信息?
非常感谢有关此方法的任何其他评论。
答案 0 :(得分:0)
首先 - 库使用BleScanException
,不应在其外部实例化。不幸的是,java不允许隐藏构造函数,因此它不会从库外看到。
只需查看源文件,即可了解BleScanException
。
最后 - 为什么你甚至需要创建一个BleScanException
?它将为您创建并传递给onError()
。您应该在这个地方处理异常。