快速入门

2022-07-28
暂无评分

注册成为DJI开发者

您可以点击这里注册成为DJI开发者。

在注册过程中,需要您提供电子邮件信息和信用卡或手机号码用于注册验证。您所提供的任何信用卡信息将仅用于验证,不会收取任何费用。

本指南假定您使用Android Studio Bumblebee 2021.1.1 大黄蜂及以上版本。

生成 App Key

每个应用程序都需要一个唯一的应用程序密钥(App Key)来初始化SDK。

要创建一个应用程序App Key:

请访问DJI开发者网站的 开发者中心

  • 选择左侧栏的 "应用 "。
  • 选择右侧的 “创建应用” 按钮。
  • 输入应用程序的名称, 开发平台, Package Name, 分类和描述信息。
  • 您会收到一封应用程序激活邮件,以完成App Key的生成。
  • 您可以在开发者中心中找到App Key,复制粘贴到应用程序配置中。

Android 示例代码

Android SDK已经包含在项目中,因此无需下载即可直接运行Android 示例代码工程。

Android 示例代码配置

  1. 下载或者克隆Github上的Android示例代码工程: https://github.com/dji-sdk/Mobile-SDK-Android-V5

  2. 若用户准备使用自己的工程,在Android Studio中打开项目工程,将生成的App Key字符串粘贴到 "AndroidManifest.xml" 文件中 android:value=""的“”符号内。

<!--
    ADD API_KEY HERE and make sure you
    are connected to the Internet before
    the app is launched
-->
<meta-data
    android:name="com.dji.sdk.API_KEY"
    android:value="" />
  1. 若用户直接使用MSDK的Sample工程,Sample对2.中的配置做了封装,在Android Studio中打开Sample工程后,可直接将生成的App Key字符串替换"gradle.properties" 文件中 AIRCRAFT_API_KEY = Please add your app key here.Please add your app key here.

运行示例代码

将示例代码编译安装到M30 系列遥控器(即DJI RC Plus)中,然后可以将DJI RC Plus连接到M30 系列飞行器上运行示例应用。

在开始使用之前,MSDK Sample会向您请求权限,如下是可能请求的权限范围。

<!-- SDK permission requirement -->
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>

其中如下几项为必需权限,其余权限可限用户需求开启:

  • INTERNET:允许应用程序打开网络套接字。
  • ACCESS_COARSE_LOCATION:允许应用程序访问大致位置。
  • ACCESS_NETWORK_STATE:允许应用程序访问网络有关的信息。
  • ACCESS_FINE_LOCATION:允许应用程序访问精确的位置。
  • WRITE_EXTERNAL_STORAGE:允许应用程序写入外部存储器。
  • READ_EXTERNAL_STORAGE:允许应用程序从外部存储器中读取。
  • READ_PHONE_STATE:允许对手机状态进行只读访问,包括当前的蜂窝网络信息、任何正在进行的通话的状态以及设备上注册的任何 PhoneAccounts 的列表。

点击可查看权限具体含义open in new window

如果Sample主界面的左上角出现“注册状态:已注册” 字样说明示例代码运行成功,而出现”产品名称:M30_SERIES“,说明 MSDK 与飞行器连接成功。下图为SDK Manager接口调用流程图。

SDK Manager.png

注意:

在M30 系列飞行器配套的遥控器DJI RC Plus上启动基于MSDK开发的第三方App时,需要在DJI RC Plus遥控器系统设置界面下的的应用和通知界面把官方DJI Pilot强行退出后才能正常启动。此问题是遥控器固件的设计导致。

conflict.gif

在用户自己工程中运行 MSDK V5 的重要注意事项

1. 检查您工程中的 "build.gradle" 文件中的 packagingOptions

文件中packagingOptions设置需要与我们sample中的 packagingOptions 设置保持一致。点击查看参考"build.gradle" 文件open in new window

packagingOptions 当前内容展示如下:

packagingOptions {
    doNotStrip "*/*/libconstants.so"
    doNotStrip "*/*/libdji_innertools.so"
    doNotStrip "*/*/libdjibase.so"
    doNotStrip "*/*/libDJICSDKCommon.so"
    doNotStrip "*/*/libDJIFlySafeCore-CSDK.so"
    doNotStrip "*/*/libdjifs_jni-CSDK.so"
    doNotStrip "*/*/libDJIRegister.so"
    doNotStrip "*/*/libdjisdk_jni.so"
    doNotStrip "*/*/libDJIUpgradeCore.so"
    doNotStrip "*/*/libDJIUpgradeJNI.so"
    doNotStrip "*/*/libDJIWaypointV2Core-CSDK.so"
    doNotStrip "*/*/libdjiwpv2-CSDK.so"
    doNotStrip "*/*/libffmpeg.so"
    doNotStrip "*/*/libFlightRecordEngine.so"
    doNotStrip "*/*/libvideo-framing.so"
    doNotStrip "*/*/libwaes.so"
    doNotStrip "*/*/libagora-rtsa-sdk.so"
    doNotStrip "*/*/libc++.so"
    doNotStrip "*/*/libc++_shared.so"
    doNotStrip "*/*/libmrtc_28181.so"
    doNotStrip "*/*/libmrtc_agora.so"
    doNotStrip "*/*/libmrtc_core.so"
    doNotStrip "*/*/libmrtc_core_jni.so"
    doNotStrip "*/*/libmrtc_data.so"
    doNotStrip "*/*/libmrtc_log.so"
    doNotStrip "*/*/libmrtc_onvif.so"
    doNotStrip "*/*/libmrtc_rtmp.so"
    doNotStrip "*/*/libmrtc_rtsp.so"
}

2. 检查您应用工程中的 "proguard" 文件

拷贝sample.proopen in new window到您的工程中,以防止混淆导致错误。

在您工程中的 "build.gradle" 文件中的“buildTypes”设置中指定sample.pro文件的位置并确保“minifyEnabled"为true。点击查看参考"build.gradle" 文件open in new window

3. 确认使用 "com.secneo.sdk.Helper.install(this)"

您需要确认将 com.secneo.sdk.Helper.install(this) 加入到您的应用工程中。点击以参考使用方式open in new window

4. 检查您工程中的 "build.gradle" 文件中的 buildTypes

确保 shrinkResources 为false,以防止资源压缩。点击查看参考"build.gradle" 文件open in new window

buildTypes 当前内容展示如下:

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), '../../android-sdk-v5-as/proguard-relative/sample.pro'
        }
        debug {
            minifyEnabled true
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), '../../android-sdk-v5-as/proguard-relative/sample.pro'
        }
    }

5. 检查您工程中的 "build.gradle" 文件中的 android

确保“arm64-v8a”安卓平台的指定。当前”armeabi-v7a“暂不支持。点击查看参考"build.gradle" 文件open in new window

android 当前内容展示如下:

android {
    compileSdkVersion Integer.parseInt(project.ANDROID_COMPILE_SDK_VERSION)

    defaultConfig {
        applicationId "com.dji.sampleV5.aircraft"
        minSdkVersion Integer.parseInt(project.ANDROID_MIN_SDK_VERSION)
        targetSdkVersion Integer.parseInt(project.ANDROID_TARGET_SDK_VERSION)
        versionCode 1
        versionName "1.0"
        manifestPlaceholders["API_KEY"] = project.AIRCRAFT_API_KEY

        ndk {
            abiFilters 'arm64-v8a'
        }
    }

MSDK 4.X 与 5.X 差异

以下内容主要目的是将MSDK 4.X版本和MSDK 5.X版本中的核心接口做对比和说明,其中主要包含了DJIKey类型接口的对比说明,和几个核心模块的差异点说明,例如SDK注册管理类(SDKManager)、设备健康状态管理类(DeviceHealthManager)等,希望能帮助开发者快速了解和使用MSDK 5.X版本。

注意:

  1. 目前MSDK 4.X和5.X还不兼容,不能一起使用。
  2. MSDK 5.X 目前支持机型:M30 Series 和M300 RTK,且未来只计划支持部分DJI的新机型。

DJIKey差异说明

DJIKey

MSDK 5.X 大多数与设备交互的功能,都是基于DJIKey来实现的,一个DJIKey代表指定模块的具体功能。

在4.X上,大部分接口的本质是对DJIKey的封装,比如说Camera$startShootPhoto,其本质是CameraKey.START_SHOOT_PHOTO的应用。在后面对比表格中,对于4.X,只显示DJIKey,而不是接口。如有特别需要说明的情况,会特殊处理。

这里以FlightControllerState下的Motors中的方法areMotorsOn为例:先通过方法areMotorsOn在4.X文档open in new window中,搜到areMotorsOn的方法说明,然后查询到对应的4.X DJIKey. FlightControllerKey.ARE_MOTOR_ON,继而在迁移文档中找到方法areMotorsOn对应的5.X DJIKey。

对照指引.gif

区别:

功能描述
4.X5.X说明/区别
DJIKey操作KeyManagerIKeyManagerKey操作封装类
DJIKey创建各类Key Class中的create方法,如:CameraKey$create、CameraKey$createLensKey、FlightControllerKey$create等。KeyTools5.X的Key创建统一用Keytools中的相关接口
DJIKey-产品ProductKeyProductKey5.X是针对整机来说的
DJIKey-AirLinkAirLinkKeyAirLinkKeyAirLink相关
DJIKey-基站BaseStationKeyRtkBaseStationKeyRTK基站相关
DJIKey-电池BatteryKeyBatteryKey电池相关
DJIKey-相机CameraKeyCameraKey相机相关
DJIKey-飞控FlightControllerKeyFlightControllerKey飞控相关
DJIKey-云台GimbalKeyGimbalKey云台相关
DJIKey-激光雷达LidarKeyLidarKey激光雷达相关
DJIKey-DJI负载PayloadKeyPayloadKeyPayload负责相关
DJIKey-雷达RadarKeyRadarKey雷达相关
DJIKey-遥控RemoteControllerKeyRemoteControllerKey遥控相关

KeyManager

功能描述
4.X5.X说明/区别
读取数据KeyManager$getValueIKeyManager$getValue类似
设置数据KeyManager$setValueIKeyManager$setValue类似
执行ActionKeyManager$performActionIKeyManager$performAction类似
监听KeyManager$addListenerIKeyManager$listen5.X引入一个Holder的概念,开发者可以将一系列Listener实例绑定到Holder上,后面在释放监听时,可以通过IKeyManager$cancelListen(Object listenHolder)一并取消
取消监听KeyManager$removeListenerIKeyManager$cancelListen监听的说明
移除Key的数据KeyManager$removeKey5.X不支持该功能

如何CreateKey

在4.X上,DJIKey的create方法定义在各类模块Key中,这里以CameraKey来举例:

  1. 创建主位置的Key:CameraKey$create(String paramKey)
  2. 创建指定位置的Key:CameraKey$create(String paramKey, int componentIndex)
  3. 创建指定位置、指定镜头的Key:CameraKey$createLensKey(String paramKey, int componentIndex, int subComponentIndex)

在5.X上,DJIKey的create方法统一定义到KeyTools中,以CameraKey为例:

只有一种方法,创建指定位置、指定镜头的DJIKey:KeyTools$createCameraKey(DJIKeyInfo<T> mKeyInfo, ComponentIndexType componentIndexType, CameraLensType cameraLensType),相关DJIKey如果不指明镜头的话,就用CameraLensType.CAMERA_LENS_DEFAULT(在Kotlin上,DJIKeyInfo有扩展方法createCamera,cameraLensType默认值就是CameraLensType.CAMERA_LENS_DEFAULT)。

参数说明:

功能描述
4.X5.X说明/区别
DJIKey信息paramKeymKeyInfo描述DJIKey的基本信息。
相机位置componentIndexComponentIndexType相机位置,5.X上使用枚举来替代。
镜头位置subComponentIndexCameraLensType镜头位置,5.X上使用枚举来替代。

5.X的其他部分,请参考KeyTools文档:KeyToolsopen in new window

ProductKey映射关系

功能描述
4.X5.X说明/区别
产品连接ProductKey.CONNECTIONProductKey.KeyConnection类似

FligthControllerKey映射关系

功能描述(FligthController)
4.X5.X说明/区别
产品连接FlightControllerKey.CONNECTIONFlightControllerKey.KeyConnection类似
电机是否启动FlightControllerKey.ARE_MOTOR_ONFlightControllerKey.KeyAreMotorsOn类似
airSense 连接状态FlightControllerKey.AIR_SENSE_SYSTEM_CONNECTEFlightControllerKey.KeyAirSenseSystemConnected类似
airSense 信息FlightControllerKey.AIR_SENSE_SYSTEM_WARNING_LEVEL 、FlightControllerKey.AIR_SENSE_AIRPLANE_STATESFlightControllerKey.KeyAirSenseSystemInformation类似
飞机高度FlightControllerKey.ALTITUDEFlightControllerKey.KeyAltitude类似
起飞点高度FlightControllerKey.TAKEOFF_LOCATION_ALTITUDEFlightControllerKey.KeyTakeoffLocationAltitude类似
返航点高度FlightControllerKey.GO_HOME_HEIGHT_IN_METERSFlightControllerKey.KeyGoHomeHeight类似
Home点位置FlightControllerKey.HOME_LOCATION_LATITUDE、FlightControllerKey.HOME_LOCATION_LONGITUDEFlightControllerKey.KeyHomeLocation类似
当前高度FlightControllerKey.ALTITUDEFlightControllerKey.KeyAltitude类似
飞机位置FlightControllerKey.AIRCRAFT_LOCATION_LATITUDE、FlightControllerKey.AIRCRAFT_LOCATION_LONGITUDEFlightControllerKey.KeyAircraftLocation4.X经纬度分别是两个Key,5.X上为一个对象里包含两者数据
是否正在飞行FlightControllerKey.IS_FLYINGFlightControllerKey.KeyIsFlying类似
是否正在下降FlightControllerKey.IS_LANDINGFlightControllerKey.KeyIsInLandingMode类似
是否需要确认下降FlightControllerKey.IS_LANDING_CONFIRMATION_NEEDEDFlightControllerKey.KeyIsLandingConfirmationNeeded类似
强制降落高度FlightControllerKey.FORCE_LANDING_HEIGHTFlightControllerKey.KeyTouchDownConfirmLimitHeight类似
飞行模式字符串FlightControllerKey.FLIGHT_MODE_STRINGFlightControllerKey.KeyFlightModeString类似
降落保护状态FlightControllerKey.LANDING_PROTECTION_STATEFlightAssistantKey.KeyLandingProtectionState类似
低电量飞控行为FlightControllerKey.BATTERY_THRESHOLD_BEHAVIORFlightControllerKey.KeyBatteryThresholdBehavior类似
返航所需电量FlightControllerKey.BATTERY_PERCENTAGE_NEEDED_TO_GO_HOMEFlightControllerKey.KeyBatteryPercentNeededToGoHome类似

CameraKey映射关系

功能描述
(Camera)
4.X5.X说明/区别
连接状态CameraKey.CONNECTIONCameraKey.KeyConnection类似
开始拍照CameraKey.START_SHOOT_PHOTOCameraKey.KeyStartShootPhoto类似
停止拍照CameraKey.STOP_SHOOT_PHOTOCameraKey.KeyStopShootPhoto类似
自动曝光开关CameraKey.AE_LOCKCameraKey.KeyAELockEnabled类似
是否正在录像CameraKey.IS_RECORDINGCameraKey.KeyIsRecording类似
录制时长CameraKey.CURRENT_VIDEO_RECORDING_TIME_IN_SECONDSCameraKey.KeyRecordingTime类似
相机类型CameraKey.CAMERA_TYPECameraKey.KeyCameraType类似
存储类型CameraKey.CAMERA_STORAGE_LOCATIONCameraKey.KeyCameraStorageLocation类似
SD卡状态CameraKey.SDCARD_STATECameraKey.KeyCameraSDCardState类似
内部存储介质状态CameraKey.INNERSTORAGE_STATECameraKey.KeyInternalStorageState类似
当前SD卡可录制时长CameraKey.SDCARD_AVAILABLE_RECORDING_TIME_IN_SECONDSCameraKey .KeySSDAvailableRecordingTimeInSeconds类似
当前内部存储可录制时长CameraKey.INNERSTORAGE_AVAILABLE_RECORDING_TIME_IN_SECONDSCameraKey.KeyInternalStorageAvailableVideoDuration类似
开始录制CameraKey.START_RECORD_VIDEOCameraKey.KeyStartRecord类似
结束录制CameraKey.STOP_RECORD_VIDEOCameraKey.KeyStopRecord类似
自动包围曝光次数CameraKey.PHOTO_AEB_COUNTCameraKey.KeyAEBSettings4.X的count在5.X的PhotoAEBSettings类里
连拍次数CameraKey.PHOTO_BURST_COUNTCameraKey.KeyPhotoBurstCount类似
连拍设置CameraKey.PHOTO_TIME_INTERVAL_SETTINGSCameraKey.KeyPhotoIntervalShootSettings类似
raw格式连拍次数CameraKey.PHOTO_RAW_BURST_COUNTCameraKey.KeyRawBurstCount类似
全景模式CameraKey.PHOTO_PANORAMA_MODECameraKey.KeyPhotoPanoramaMode类似
是否正在拍照CameraKey.IS_SHOOTING_PHOTOCameraKey.KeyIsShootingPhoto类似
是否正在保存照片CameraKey.IS_STORING_PHOTOCameraKey.KeyCameraStoringFile类似
能否拍照CameraKey.IS_SHOOTING_PHOTO_ENABLEDCameraKey.KeyShootPhotoNotAllowed类似
是否正在拍照全景照片CameraKey.IS_SHOOTING_PANORAMA_PHOTOCameraKey.KeyIsShootingPhotoPanorama类似
曝光模式CameraKey.EXPOSURE_MODECameraKey.KeyExposureMode类似
曝光模式范围CameraKey.EXPOSURE_MODE_RANGECameraKey.KeyExposureModeRange类似
ISO设置CameraKey.ISOCameraKey.KeyISO类似
ISO设置范围CameraKey.ISO_RANGECameraKey.KeyISORange类似
曝光设置CameraKey.EXPOSURE_SETTINGSCameraKey.KeyExposureSettings类似
曝光感光度设置CameraKey.EXPOSURE_SENSITIVITY_MODECameraKey.KeyExposureSensitivityMode类似
EI值CameraKey.EI_VALUECameraKey.KeyEI类似
推荐EI值CameraKey.RECOMMENDED_EI_VALUECameraKey.KeyRecommendedEI类似
EI值范围CameraKey.EI_VALUE_RANGECameraKey.KeyEIRange类似
相机模式CameraKey.MODE/CameraKey.FLAT_CAMERA_MODECameraKey.KeyCameraMode5.X对4.X 两个ModeKey做了统一处理,整合成一个
图传视频源CameraKey.CAMERA_VIDEO_STREAM_SOURCECameraKey.KeyCameraVideoStreamSource类似
对焦模式CameraKey.FOCUS_MODECameraKey.KeyCameraFocusMode类似
测光模式CameraKey.METERING_MODECameraKey.KeyCameraMeteringMode类似
对焦目标CameraKey.FOCUS_TARGETCameraKey.KeyCameraFocusTarget类似
点测光目标CameraKey.SPOT_METERING_TARGETCameraKey.KeySpotMeteringTargetPoint类似

GimbalKey映射关系

功能描述
(Gimbal)
4.X5.X说明/区别
云台连接状态GimbalKey.CONNECTIONGimbalKey.KeyConnection类似
云台姿态GimbalKey.ATTITUDE_IN_DEGREESGimbalKey.KeyGimbalAttitude类似
旋转云台GimbalKey.ROTATEGimbalKey.KeyRotateBySpeed、GimbalKe.KeyRotateByAngle5.X抽离了模式,变成了两个Key

RemoteControlKey映射关系

功能描述
(RemoteControl)
4.X5.X说明/区别
遥控模式RemoteControllerKey.MODERemoteControllerKey.KeyRcMachineMode类似
连接事件RemoteControllerKey.CONNECTIONRemoteControllerKey.KeyConnection类似
电池状态RemoteControllerKey.BATTERY_STATERemoteControllerKey.KeyBatteryInfo类似
是否低电量RemoteControllerKey.IS_CHARGE_REMAINING_LOWRemoteControllerKey.KeyBatteryInfo需要开发者根据当前电量自己算,4.X时小于30%为低。
遥控GPS信息RemoteControllerKey.GPS_DATARemoteControllerKey.KeyRcGPSInfo类似
遥控模式设置RemoteControllerKey.AIRCRAFT_MAPPING_STYLERemoteControllerKey.KeyControlMode相比4.X,5.X更直接,可以通过枚举明确遥控模式。

RTKKey映射关系

功能描述
(RTK)
4.X5.X说明/区别
Home点数据源FlightControllerKey.RTK_FUSION_HOME_LOCATION_DATA_SOURCERtkMobileStationKey.KeyRTKHomePointInfo类似
起飞高度是否设置FlightControllerKey.RTK_FUSION_HAS_SET_TAKE_OFF_ALTITUDERtkMobileStationKey.KeyRTKTakeoffAltitudeInfo类似
是否启用RTKFlightControllerKey.RTK_ENABLEDRtkMobileStationKey.KeyRTKEnable类似
是否支持RTKFlightControllerKey.IS_RTK_SUPPORTEDFlightControllerKey.KeyIsRtkSupported类似
RTK是否连接FlightControllerKey.IS_RTK_CONNECTEDRtkMobileStationKey.KeyConnection类似

BatteryKey映射关系

功能描述
(Battery)
4.X5.X说明/区别
电池温度BatteryKey.TEMPERATUREBatteryKey.KeyBatteryTemperature类似
电池电量BatteryKey.CHARGE_REMAINING_IN_PERCENTBatteryKey.KeyChargeRemainingInPercent类似
电池电压BatteryKey.CELL_VOLTAGESBatteryKey.KeyCellVoltages类似
异常信息BatteryKey.LATEST_WARNING_RECORDBatteryKey.KeyBatteryException5.X都集中在这个Key中
整合信息BatteryKey.AGGREGATION_STATEBatteryKey.KeyNumberOfConnectedBatteries、BatteryKey.KeyIsAnyBatteryDisconnected、BatteryKey.KeyIsCellDamaged、BatteryKey.KeyIsFirmwareDifferenceDetected、BatteryKey.KeyIsVoltageDifferenceDetected、BatteryKey.KeyIsLowCellVoltageDetected、BatteryKey.KeyBatteryOverviews4.X上读取的是多电池的聚合信息,在5.X上,创建DJIKey时,传入ComponentIndexType.AGGREGATION

DJI核心模块差异说明

ISDKManager

ISDKManager为MSDK入口管理类,相对于4.X做了简化。请参考这篇文章:快速入门open in new window,其中介绍了注册、配置、APP_Key申请以及示例代码的使用。

功能描述
4.x5.x说明/区别
注册/激活DJISDKManager$registerAppSDKManager$init 和 SDKManager$registerApp5.x抽离了init部分,开发者需要在应用启动后,有且仅调用一次init。
设备连接事件SDKManagerCallback$onComponentChange使用各类Key 的KeyConnection,如:CameraKey.KeyConnection、FlightControllerKey.KeyConnection5.x通过各模块的KeyConnection来监听设备连接事件

虚拟摇杆模块

虚拟摇杆4.X和5.X接口层面差异较多,请参考5.X文档:虚拟摇杆open in new window

如果原来使用DJIKey实现的话,有如下对比:

功能描述(VirtualStick)
4.X5.X说明/区别
开/关虚拟摇杆FlightControllerKeys.VIRTUAL_STICK_CONTROL_MODE_ENABLEDFlightControllerKey.KeyVirtualStickEnabled类似
发送虚拟摇杆数据FlightControllerKeys.SEND_VIRTUAL_STICK_FLIGHT_CONTROL_DATAFlightControllerKey.KeySendVirtualStickFlightControlData整体数据类似

图传模块

相比于4.X,5.X图传简化了不少操作,请参考5.X文档:图传open in new window

直播模块

相比于4.X,5.X直播功能更丰富,支持的协议更多,请参考5.X文档:直播open in new window

诊断管理模块

在5.X上,错误诊断通过IDeviceHealthManager来完成,请参考5.X文档:诊断管理open in new window

参数对比:

描述
4.X5.X说明/区别
错误码DJIDiagnostics$getCodeDJIDeviceHealthInfo$informationCode相对于4.X,5.X的HMS错误码更方便查阅、更全面、更多。
错误描述DJIDiagnostics$getReason、DJIDiagnostics$getSolutionDJIDeviceHealthInfo$title、DJIDeviceHealthInfo$description5.X统一为title以及错误描述(支持中英文)。

模拟器模块

模拟器请参考5.X文档:模拟器open in new window

媒体文件模块

媒体文件请参考5.X文档:多媒体open in new window

航线模块

当前航线通过KMZ文件发送到飞机,请参考5.X文档:航线open in new window

RTK模块

RTK请参考5.X文档:RTKopen in new window

LDM模块

LDM请参考5.X文档:LDMopen in new window