首页
教程
无人机教程
手持教程
后期教程
作品
航拍无人机
DJI Mavic
DJI Avata
DJI Mini
DJI FPV
DJI Air
Phantom
Inspire
其他
手持摄影
创意摄影
DJI Mic
Osmo Action
Osmo Mobile
Osmo Pocket
Ronin
商用产品
行业应用
教育应用
农业应用
咨询
官方公告
售后服务
查禁飞区
其他
活动
官方活动
大疆校园
同城约飞
每日签到
其他
发帖
登录
注册
骆驼2
已累计飞行 0 米
发布于
2021-7-6
浏览
1.6k
相关分类
开发者
技术交流
0
0
7
0
7 条评论
最新
最早
快来评论吧
骆驼2
8
已累计飞行 0 米
收到官方的回复: 尊敬的开发者, 您好,感谢您联系DJI 大疆创新。 目前 MSDK 4.15.1还不支持 Air 2S,所以您无法使用 Air 2S 连接。我们计划在十二月底发布安卓版本的 MSDK 4.16,在这个版本中,将会支持 Air 2S、Mini 2以及 Mini SE。之后您将可以使用 MSDK 4.16来连接 Air 2S。
2021-9-23
骆驼2
7
已累计飞行 0 米
回复 sxx :
我现在在getFlightController()为null的时候,一直循环注册,调试也发现它一直在循环,但是返回永远都是null。SDK是4.15,飞机固件已经升级到最新。代码如下,请帮忙看看是否少了什么步骤,谢谢! private void startSDKRegistration() { if (isRegistrationInProgress.compareAndSet(false, true)) { } AsyncTask.execute(new Runnable() { @Override public void run() { ToastUtils.setResultToToast("Registering, pls wait..."); DJISDKManager.getInstance().registerApp(MainActivity.this.getApplicationContext(), new DJISDKManager.SDKManagerCallback() { @Override public void onRegister(DJIError djiError) { if (djiError == DJISDKError.REGISTRATION_SUCCESS) { DJILog.e("App registration", DJISDKError.REGISTRATION_SUCCESS.getDeion()); DJISDKManager.getInstance().startConnectionToProduct(); ToastUtils.setResultToToast("SDK Registered Successfully"); showDBVersion(); KeyManager.getInstance().addListener(ProductKey.create(ProductKey.CONNECTION), new KeyListener() { @Override public void onValueChange(@Nullable Object o, @Nullable Object o1) { Log.d(TAG, String.format("onProductConnect newProduct:%s", o1)); if (DJISDKManager.getInstance().getProduct() != null && DJISDKManager.getInstance().getProduct() instanceof Aircraft && ((Aircraft)DJISDKManager.getInstance().getProduct()).getFlightController() != null) { fly.init(); }else { startSDKRegistration(); } notifyStatusChange(); } }); } else { ToastUtils.setResultToToast("SDK Registration Failed. Please check the bundle ID and your network\n" + " connectivity"+ djiError.getDeion()); } Log.v(TAG, djiError.getDeion()); hideProcess(); } @Override public void onProductDisconnect() { Log.d(TAG, "onProductDisconnect"); notifyStatusChange(); } @Override public void onProductConnect(BaseProduct baseProduct) { Log.d(TAG, String.format("onProductConnect newProduct:%s", baseProduct)); if (DJISDKManager.getInstance().getProduct() != null && DJISDKManager.getInstance().getProduct() instanceof Aircraft && ((Aircraft)DJISDKManager.getInstance().getProduct()).getFlightController() != null) { fly.init(); }else { startSDKRegistration(); } notifyStatusChange(); } @Override public void onProductChanged(BaseProduct baseProduct) { Log.d(TAG, String.format("onProductChanged newProduct:%s", baseProduct)); notifyStatusChange(); } @Override public void onComponentChange(BaseProduct.ComponentKey componentKey, BaseComponent oldComponent, BaseComponent newComponent) { if (newComponent != null) { newComponent.setComponentListener(mDJIComponentListener); } Log.d(TAG, String.format("onComponentChange key:%s, oldComponent:%s, newComponent:%s", componentKey, oldComponent, newComponent)); notifyStatusChange(); } @Override public void onInitProcess(DJISDKInitEvent djisdkInitEvent, int i) { } @Override public void onDatabaseDownloadProgress(long current, long total) { int process = (int) (100 * current / total); Log.d(TAG, "DB load process : " + process); if (process == lastProcess) { return; } lastProcess = process; showProgress(process); if (process % 25 == 0){ ToastUtils.setResultToToast("DB load process : " + process); }else if (process == 0){ ToastUtils.setResultToToast("DB load begin"); } } }); } }); }
2021-9-22
sxx
6
已累计飞行 0 米
回复 骆驼2 :
KeyManager 一开始也是null。要判断,我在每一次通知产品连接的时候都会重置一遍监听设置。
2021-7-8
sxx
5
已累计飞行 0 米
回复 骆驼2 :
至少要等到返回无人机才行。 这个也是MSDK比较坑逼的地方。你可以用KeyManager 监听 ProductKey.create(ProductKey.CONNECTION) 这个key。等到返回true再获取。一般都是先获取再添加监听
2021-7-8
骆驼2
4
已累计飞行 0 米
回复 sxx :
我把获取时机改到了onProductConnect里了,获取到的也还是Unknown,然后DJISDKManager.getInstance().getProduct().isConnected()返回的是true,但是DJISDKManager.getInstance().getProduct().getFlightController()返回的是null。飞机的固件已经升级到最新,SDK用的4.15。
2021-7-7
骆驼2
3
已累计飞行 0 米
回复 sxx :
我用的是最新的4.15,连接Mavic 2 Pro正常,2S不行。我是在MainActivity::onCreate的时候去获取的。请问您是在哪个时机获取的?
2021-7-6
sxx
2
已累计飞行 0 米
可能是获取的时机不对?最新的4.15应该是支持的。我获取到model 返回的是 MAVIC_2_ENTERPRISE_ADVANCED
2021-7-6
暂无更多评论
关于作者
已累计飞行 0 米
骆驼2
飞行学员
认证设备
暂无关联认证的设备
最新帖子
更多
请问Mobile SDK Android是否支持Dji Air 2 S?