MSDK V5 ,如何获得连接飞机失败的回调
Completed 我看到你们文档上有说,注册成功后会自动去连接产品。 连接成功后会走 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支持回调。 我现在收不到回调,能否指导一下怎么使用。 我现在收不到失败的回调。
-
比如我在不连接遥控器和飞机的情况下,我打开APP,去点击注册,此时肯定是不会连接成功的。 我要知道sdk 直接告诉我连接失败。从而提醒用户,让用户无法进入具体的视屏页面。 经过实际测试,onProductDisconnect 是不会有回调的。 -->MSKD只会告知连接成功,和断开连接,没有连接失败的状态。 不可以收到连接成功之后直接跳转到视屏页面吗?SDK一旦完成注册会不断尝试连接飞机,是没有连接失败的状态的。 如果你要判断这个时候有没有识别到飞机,之前给你发的文章里有提到,可以用FlightControllerKey的KeyConnection去监听连接状态。 -
但是我用以下方法继续监听,并没有收到任何回调。及时飞机已经连接成功了,能出图了。
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()}") } } }
Please sign in to leave a comment.
Comments
9 comments