1.设备信息
平台:phantom 3 Advanced。
手机:android 5.0 Lollipop。
dji sdk: Mobike SDK 3.0/3.1。
2.开发前准备
1.联网激活飞行器。
2.申请成为dji 开发者。
3.申请app的key,放在android项目中的manifest.xml文件中。
3.mobile sdk 介绍
手机与飞机的通信流程为:phone(app)->usb->remote controller->aircraft.
官网入门文档:http://developer.dji.com/mobile-sdk/get-started/Virtual-Stick-User-Guide/
3.1依赖库
除了dji的sdk依赖,还有一堆so文件依赖,见图3-1.
图3-1 开发中的jar依赖与so依赖
3.2类与方法
dji.sdk.SDKManager.DJISDKManager
类。负责注册app软件,建立与断开与遥控器的连接等。
dji.sdk.SDKManager.DJISDKManager#getInstance()
得到单例对象。
dji.sdk.SDKManager.DJISDKManager#initSDKManager(Context var1, DJISDKManager.DJISDKManagerCallback var2)
负责初始化DJISDKManager对象。此时需要联网,验证开发者申请的appKey。
dji.sdk.base.DJIBaseProduct dji.sdk.SDKManager.DJISDKManager#getDJIProduct()
通过manager得到product对象,它就代表着飞行器。
dji.sdk.Products.DJIAircraft
飞机。是DJIBaseProduct 的子类。一般直接强转就行了。
4.我的项目
把遥控器做到app中,通过互联网控制与观看实时视频流。
数据传输路线为:飞机->遥控器->遥控app->互联网某台UDP 中转Server->客户端。
图4-1 客户端与遥控app
图4-2 遥控端app近图
4.1 项目地址
csdn-git:https://code.csdn.net/chuchus/virtualstick/tree/master/