MSDK V5 ,如何获得连接飞机失败的回调
已完成 我看到你们文档上有说,注册成功后会自动去连接产品。 连接成功后会走 onProductConnect 回调。 但是我没看到哪里有连接失败的回调。
因为我们的交互设计是连接成功才能进入视频界面。 如果没有连接失败回调的话,我无法确定到底是在连接过程还是连接失败了。 难道我要设置一个倒计时,时间到了如果还没回调就认为是失败了? 如果用这种倒计时的方式,这个等待时间设置多少比较合适?
-
你点击了onProductConnect的链接地址就能跳转到我们的API文档,上面有失败的回调。关于连接成功,你可以看看这篇文章:如何监听无人机以及各个组件的连接状态?(https://sdk-forum.dji.net/hc/zh-cn/articles/8864644851865) -
我在论坛上找到你们 V4版本的回复(https://sdk-forum.dji.net/hc/zh-cn/community/posts/16938966815001-DJI-GO-4%E5%92%8CSDK%E5%86%B2%E7%AA%81%E9%97%AE%E9%A2%98),说V4是没有连接失败回调的。 V5版本的SDK是已经修复这个bug了吗。 如果是V4不支持,V5支持回调。 我现在收不到回调,能否指导一下怎么使用。 我现在收不到失败的回调。
-
但是我用以下方法继续监听,并没有收到任何回调。及时飞机已经连接成功了,能出图了。
fun initMobileSDK(appContext: Context) {
FlightControllerKey.KeyConnection.create().listen(appContext) { it ->
LyLog.showLog("收到飞机连接结果的回调=$it")
it?.let {
isFlightConnected =it
}
}但是用以下代码获得的结果是 true
val result = KeyManager.getInstance()
.getValue(KeyTools.createKey(FlightControllerKey.KeyConnection))请问是什么原因,是因为我监听的代码不对吗
-
Key监听是建议放在注册成功之后的。我这样是可以拿到推送信息的 fun initMobileSDK(appContext: Context) { // Initialize and set the sdk callback, which is held internally by the sdk until destroy() is called SDKManager.getInstance().init(appContext, object : SDKManagerCallback { override fun onRegisterSuccess() { lvRegisterState.postValue(Pair(true, null)) FlightControllerKey.KeyConnection.create().listen(appContext) { it -> it?.let { Log.d("sss", "onRegisterSuccess: ${it.toString()}") } } }
请先登录再写评论。
评论
9 条评论