Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从Polidea蓝牙库-Kotlin协同路由返回延迟类型_Android_Kotlin_Bluetooth Lowenergy_Kotlinx.coroutines - Fatal编程技术网

Android 从Polidea蓝牙库-Kotlin协同路由返回延迟类型

Android 从Polidea蓝牙库-Kotlin协同路由返回延迟类型,android,kotlin,bluetooth-lowenergy,kotlinx.coroutines,Android,Kotlin,Bluetooth Lowenergy,Kotlinx.coroutines,我正在用kotlin协同程序做一些实验,特别是我想从库中返回到我的协同程序RxBleDevice。 然而,Polidea scanBleDevices函数返回一个一次性的on subscribe。根据我的代码,有没有办法返回到我的RxBleDevice协同程序 这是我的代码,目前尚未编译: val scanDevices:Deferred=GlobalScope.async{ rxBleClient.scanBleDevices(ScanSettings.Builder()) .build(),

我正在用kotlin协同程序做一些实验,特别是我想从库中返回到我的协同程序RxBleDevice。 然而,Polidea scanBleDevices函数返回一个一次性的on subscribe。根据我的代码,有没有办法返回到我的RxBleDevice协同程序

这是我的代码,目前尚未编译:

val scanDevices:Deferred=GlobalScope.async{
rxBleClient.scanBleDevices(ScanSettings.Builder())
.build(),filterBuilder.setDeviceName(bikeBleName.build())
.订阅(
{scanResult->
//在这里处理扫描结果。
scanResult.bleDevice
},
{可丢弃->
//在这里处理错误。
}
)
}

您需要将
subscribe
方法调用包装到

suspendCancellableCoroutine< RxBleDevice>{ cont ->
  //your code here
}
suspendCancelableCorroutine{cont->
//你的代码在这里
}
街区。在
subscribe
回调实现中,使用
cont.resume()
恢复与结果的协同工作,使用
cont.resumeWithException
恢复与错误的协同工作

您可能还希望在协同程序和扫描活动之间绑定取消。有关详细信息,请参见
cont.invokeOnCancellation{}

您调用的API看起来像一个Rx,可能其中一个模块有帮助

您需要将
subscribe
方法调用包装到

suspendCancellableCoroutine< RxBleDevice>{ cont ->
  //your code here
}
suspendCancelableCorroutine{cont->
//你的代码在这里
}
街区。在
subscribe
回调实现中,使用
cont.resume()
恢复与结果的协同工作,使用
cont.resumeWithException
恢复与错误的协同工作

您可能还希望在协同程序和扫描活动之间绑定取消。有关详细信息,请参见
cont.invokeOnCancellation{}

您调用的API看起来像一个Rx,可能其中一个模块有帮助

可能重复的可能重复的可能重复的感谢,它工作!你认为扩展函数也可以是一种方法吗?是的,我认为可以。或者您也可以创建自己的扩展函数,用于执行
订阅
并在内部挂起以使代码更易于阅读谢谢,它可以工作!你认为扩展函数也可以是一种方法吗?是的,我认为可以。或者,您可以创建自己的扩展函数,该函数执行
订阅
并在内部挂起,以使代码更易于阅读