DJI Mobile SDK Documentation
    • KeyCustomExpandFileNameSettings

      <b>Parameter:</b>`CustomExpandNameSettings` To set and get extension name of the customized file. After calling this interface, the default file name plus the extension name you set will be the name of the nest media file(video or photo). For example, the default name photo name is “DJI_2020012091415_999_WIDE.JPG”, and the extension name of the customized file you set is “Waypoint1”, therefore the name of the new photo will be “DJI_2020012091415_999_WIDE_Waypoint1.JPG”. This operation only takes effect once. If it is required that all media files in one flight have the same extension name, you need to set the same extension name before each photo shooting. <b>Note: 1. Do not set the extension name of the customized file during video recording. 2. Do not use pure numbers and special characters as the extension name, otherwise the multimedia file will fail to download. It is recommended to use a combination of numbers and letters as the extension name. 3. The length of the multimedia file name [original file name + extension name] is less than 128 bytes.</b> <i>Supported since MSDK 5.0.0</i></code>

    class CameraKey

    @Keep
    class CameraKey extends DJICameraKey
    Package:dji.sdk.keyvalue.key
    Inherits From:DJICameraKey
    Description:

    CameraKeyprovides a set of methods to set and get the camera parameters including camera type, camera settings, etc.

    Supported since MSDK 5.0.0

    Class Members:

    Basic Information

    Connected Status
    final KeyConnection
    static final DJIKeyInfo<Boolean> KeyConnection = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"Connection", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: Boolean

    true means that camera is connected.

    Supported since MSDK 5.0.0

    Camera Type
    final KeyCameraType
    static final DJIKeyInfo<CameraType> KeyCameraType = new KeyCameraType()
    .canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: CameraType
    To get camera type.

    Supported since MSDK 5.0.0

    Firmware version
    final KeyFirmwareVersion
    static final DJIKeyInfo<String> KeyFirmwareVersion = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"FirmwareVersion", SingleValueConverter.StringConverter).canGet(true).canSet(false).canListen(false).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: String

    Get Firmware Version.

    Supported since MSDK 5.0.0


    Camera Settings

    Camera Mode
    final KeyCameraModeRange
    static final DJIKeyInfo<List<CameraMode>> KeyCameraModeRange = new KeyCameraModeRange()
    .canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:list<CameraMode>
    To get the mode of camera that can be set currently.

    Supported since MSDK 5.0.0

    final KeyCameraMode
    static final DJIKeyInfo<CameraMode> KeyCameraMode = new KeyCameraMode()
    .canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraMode
    To set working mode of the camera, including shooting photo and recording video. The mode of the camera that can be set currently can get through KeyCameraModeRange. This mode takes effect for all lenses.
    Notic:
    Panoramic photo mode can only be activated after the aircraft takes off.


    Supported since MSDK 5.0.0

    Shoot Photo
    final KeyIsShootingPhoto
    static final DJIKeyInfo<Boolean> KeyIsShootingPhoto = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"IsShootingPhoto", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: Boolean

    true means camera is shooting.

    Supported since MSDK 5.0.0

    final KeyStartShootPhoto
    static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyStartShootPhoto = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"StartShootPhoto", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Start shooting photo. The camera must be in shooting photo mode. For infrared lenses, users can take photos while recording video. If the shooting photo mode is PHOTO_INTERVAL, you need to call KeyStopShootPhoto to stop the camera from shooting photo. Before using this method, you should check the SD Card status to make sure enough space.

    Supported since MSDK 5.0.0

    final KeyStopShootPhoto
    static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyStopShootPhoto = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"StopShootPhoto", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Stop shooting photo. When the camera shooting mode is PHOTO_INTERVAL, PHOTO_SUPER_RESOLUTION and PHOTO_PANORAMA, and KeyStartShootPhotois called to start shooting, you can call this interface to stop shooting. If the camera shooting mode is set to be single shooting, the camera will stop shooting automatically after a single photo is shoot, there is no need to call this interface.

    Supported since MSDK 5.0.0

    final KeyCaptureCameraStreamSettings
    static final DJIKeyInfo<CameraStreamSettingsInfo> KeyCaptureCameraStreamSettings = new KeyCaptureCameraStreamSettings()
    .canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraStreamSettingsInfo
    Multi-lens photo storage settings. All lenses of this camera take photos by default, and the photos are stored in the SD Card. You can call this interface to select the required lens for shooting photo and storage. Before calling this interface, you need to call KeyCameraMode to set the camera shooting mode to PHOTO_NORMAL.

    Note:
    For DJI Mavic 3M, only the following two settings are supported:

    1. Store only RGB photos:[RGB_CAMERA]
    2. Store RGB and multispectral photos:[RGB_CAMERA, NDVI_CAMERA, MS_G_CAMERA, MS_R_CAMERA, MS_RE_CAMERA, MS_NIR_CAMERA]


      Supported since MSDK 5.0.0
    final KeyPhotoFileFormatRange
    static final DJIKeyInfo<List<PhotoFileFormat>> KeyPhotoFileFormatRange = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"PhotoFileFormatRange", new SingleValueConverter<>((Class)List.class,PhotoStorageFormatRangeMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("PhotoStorageFormatRange")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:list<PhotoFileFormat>
    To get the camera's photo format range.

    Supported since MSDK 5.0.0

    final KeyPhotoFileFormat
    static final DJIKeyInfo<PhotoFileFormat> KeyPhotoFileFormat = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"PhotoFileFormat", new SingleValueConverter<>(PhotoFileFormat.class,PhotoStorageFormatMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("PhotoStorageFormat")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:PhotoFileFormat
    To set and get the photo format supported by the camera, and can only be set when the KeyCameraMode is photo mode.

    Supported since MSDK 5.0.0

    final KeyPhotoCSize
    static final DJIKeyInfo<PhotoSize> KeyPhotoCSize = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"PhotoCSize", new SingleValueConverter<>(PhotoSize.class,PhotoSizeMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("PhotoSize")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:PhotoSize
    To set and get the photo size supported by the camera.

    Note:
    1. It can only be set when KeyCameraMode is in camera mode.
    2. M30, M30T, Mavic 3T can support settings: SIZE_DEFAULT and SIZE_LARGE. 3. The photo size of other types of cameras defaults to SIZE_DEFAULT and does not need to be set.


    Supported since MSDK 5.6.0

    final KeyPhotoIntervalShootSettings
    static final DJIKeyInfo<PhotoIntervalShootSettings> KeyPhotoIntervalShootSettings = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"PhotoIntervalShootSettings", new DJIValueConverter<>(PhotoIntervalShootSettings.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:PhotoIntervalShootSettings
    Set and get the number of pictures and the interval time between pictures, and is used when KeyCameraMode is PHOTO_INTERVAL.

    Supported since MSDK 5.0.0

    final KeyPhotoIntervalCountdown
    static final DJIKeyInfo<Integer> KeyPhotoIntervalCountdown = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"PhotoIntervalCountdown", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:Integer
    To get the countdown of interval photo shooting. When the interval shooting mode is set, after calling KeyStartShootPhoto to start shooting, the camera will count down the interval time between photos and will shoot one photo after the countdown reaches 0.

    Supported since MSDK 5.0.0

    final KeySuperResolutionInfo
    static final DJIKeyInfo<SuperResolutionInfo> KeySuperResolutionInfo = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"SuperResolutionInfo", new DJIValueConverter<>(SuperResolutionInfo.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("SuperResolutionState")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:SuperResolutionInfo
    To get the status and information of ultra-clear matrix photo, and is used when KeyCameraMode is PHOTO_SUPER_RESOLUTION.

    Supported since MSDK 5.0.0

    final KeySuperResolutionCaptureArea
    static final DJIKeyInfo<DoubleRect4Sides> KeySuperResolutionCaptureArea = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"SuperResolutionCaptureArea", new DJIValueConverter<>(DoubleRect4Sides.class)).canGet(true).canSet(true).canListen(false).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:DoubleRect4Sides
    To set the area of ultra-clear matrix photo shooting, and is used when KeyCameraMode is PHOTO_SUPER_RESOLUTION. Area range: getMaxArea.

    Supported since MSDK 5.0.0

    final KeyPhotoPanoramaMode
    static final DJIKeyInfo<PhotoPanoramaMode> KeyPhotoPanoramaMode = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"PhotoPanoramaMode", new SingleValueConverter<>(PhotoPanoramaMode.class,VisionPhotoPanoramaModeMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("VisionPhotoPanoramaMode")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:PhotoPanoramaMode
    To set the panorama photo shooting mode, and is used when KeyCameraMode is PHOTO_PANORAMA.

    Supported since MSDK 5.0.0

    final KeyIsShootingPhotoPanorama
    static final DJIKeyInfo<Boolean> KeyIsShootingPhotoPanorama = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"IsShootingPhotoPanorama", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("IsShootingVisionPanoramaPhoto")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:Boolean
    true means panorama photo is being shot and is used when KeyCameraMode is PHOTO_PANORAMA.

    Supported since MSDK 5.0.0

    final KeyPhotoPanoramaProgress
    static final DJIKeyInfo<Integer> KeyPhotoPanoramaProgress = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"PhotoPanoramaProgress", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("PanoramaPhotoCaptureProgress")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:Integer
    To get the percentage of panorama photo shooting, and is used when KeyCameraMode is PHOTO_PANORAMA.

    Supported since MSDK 5.0.0

    Record Video
    final KeyIsRecording
    static final DJIKeyInfo<Boolean> KeyIsRecording = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"IsRecording", SingleValueConverter.BooleanConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: Boolean

    true means that camera is recording video.

    Supported since MSDK 5.0.0

    final KeyStartRecord
    static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyStartRecord = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"StartRecord", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Start recording video. It is required that calling KeyCameraMode to set camera working mode to VIDEO_NORMAL. For the Infrared lens, the user can shooting photo when the video is recording. Before using this method, SD Card status should be checked to make sure there has enough space.

    Supported since MSDK 5.0.0

    final KeyStopRecord
    static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyStopRecord = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"StopRecord", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Stop recording video.

    Supported since MSDK 5.0.0

    final KeyRecordingTime
    static final DJIKeyInfo<Integer> KeyRecordingTime = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"RecordingTime", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    The duration of the video currently recorded by the camera. Unit:second.

    Supported since MSDK 5.0.0

    final KeyVideoRecordPlan
    static final DJIKeyInfo<VideoRecordPlanInfo> KeyVideoRecordPlan = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"VideoRecordPlan", new DJIValueConverter<>(VideoRecordPlanInfo.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:VideoRecordPlanInfo
    Turn on or off the camera pre-recording function. Pre-recording will automatically record the number of seconds you set before recording the video and add it to the video, which consumes device storage space and affects the writing life of the SD card. Please try to avoid pulling out the card during pre-recording. You can call KeyVideoPreRecordDuration to set the pre-recording duration. You can call KeyVideoRecordingStatus to obtain the pre-recording status.

    Note:
    Only H30 series cameras support this feature.



    Supported since MSDK 5.9.0

    final KeyVideoPreRecordDuration
    static final DJIKeyInfo<VideoPreRecordDurationInfo> KeyVideoPreRecordDuration = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"VideoPreRecordDuration", new DJIValueConverter<>(VideoPreRecordDurationInfo.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:VideoPreRecordDurationInfo
    Set the camera pre-recording duration.

    Note:
    Only H30 series cameras support this feature.



    Supported since MSDK 5.9.0

    final KeyVideoRecordingStatus
    static final DJIKeyInfo<VideoRecordingStatus> KeyVideoRecordingStatus = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"VideoRecordingStatus", new DJIValueConverter<>(VideoRecordingStatus.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("IsRecordingInfo")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:VideoRecordingStatus
    Get camera pre-recording status. When the status is STARTING and STOPPING, the camera cannot take pictures and record videos.。

    Note:
    Only H30 series cameras support this feature.



    Supported since MSDK 5.9.0

    final KeyRecordCameraStreamSettings
    static final DJIKeyInfo<CameraStreamSettingsInfo> KeyRecordCameraStreamSettings = new KeyRecordCameraStreamSettings()
    .canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraStreamSettingsInfo
    Multi-lens recording storage setting. By default, all lenses of this camera can record video and the video will store in SD Card. You can call this interface to choose the required lens to record video and store. Before calling this interface, KeyCameraMode should be called to set camera working mode to VIDEO_NORMAL.

    Note:
    For DJI Mavic 3M, only the following two settings are supported:
    1. Store only RGB video:[RGB_CAMERA]
    2. Store RGB and NDVI video:[RGB_CAMERA, NDVI_CAMERA]



    Supported since MSDK 5.0.0

    final KeyVideoFileFormatRange
    static final DJIKeyInfo<List<VideoFileFormat>> KeyVideoFileFormatRange = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"VideoFileFormatRange", new SingleValueConverter<>((Class)List.class,VideoStorageFormatRangeMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("VideoStorageFormatRange")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:list<VideoFileFormat>
    To get recording format range of the camera.

    Supported since MSDK 5.0.0

    final KeyVideoFileFormat
    static final DJIKeyInfo<VideoFileFormat> KeyVideoFileFormat = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"VideoFileFormat", new SingleValueConverter<>(VideoFileFormat.class,VideoStorageFormatMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("VideoStorageFormat")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:VideoFileFormat
    To set and get video format supported by the camera, and can only be set when the KeyCameraMode is video mode.

    Supported since MSDK 5.0.0

    final KeyVideoBitrateMode
    static final DJIKeyInfo<VideoBitrateMode> KeyVideoBitrateMode = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"VideoBitrateMode", new SingleValueConverter<>(VideoBitrateMode.class,VideoEncryptStrategyMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("VideoEncryptStrategy")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:VideoBitrateMode
    Set and get the video bitrate mode supported by the camera. It can only be set when KeyCameraMode is in recording mode.

    Note:
    Only H30 series cameras support this feature.



    Supported since MSDK 5.9.0

    final KeyVideoMimeType
    static final DJIKeyInfo<VideoMimeType> KeyVideoMimeType = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"VideoMimeType", new SingleValueConverter<>(VideoMimeType.class,VideoFileCompressionStandardMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("VideoFileCompressionStandard")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:VideoMimeType
    Set and get the video mime type supported by the camera. It can only be set when KeyCameraMode is in recording mode.

    Note:
    Only H30 series cameras support this feature.



    Supported since MSDK 5.9.0

    final KeyNewlyGeneratedMediaFile
    static final DJIKeyInfo<GeneratedMediaFileInfo> KeyNewlyGeneratedMediaFile = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"NewlyGeneratedMediaFile", new DJIValueConverter<>(GeneratedMediaFileInfo.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:GeneratedMediaFileInfo
    After the photo shooting and video recording are started, the camera will generate new photo or video. This interface can be used to get media file information generated.

    Supported since MSDK 5.0.0

    final KeyCustomExpandDirectoryNameSettings
    static final DJIKeyInfo<CustomExpandNameSettings> KeyCustomExpandDirectoryNameSettings = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CustomExpandDirectoryNameSettings", new DJIValueConverter<>(CustomExpandNameSettings.class)).canGet(true).canSet(true).canListen(false).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CustomExpandNameSettings
    To set and get the extension name of the customized file folder. After calling this interface, the newly generated media file (video or photo) will be stored in a new file folder. Default file folder name plus the extension name you set will be the name of the new file folder. For example, the default file folder name is “DJI_202001012359_01”, and the customized extension name of the file folder is “Mission1”, therefore the new file folder name will be “DJI_202001012359_01_Mission1”. In one flight, you can set multiple extension directory names to create multiple customized folders.

    Note:
    1. Do not set the extension name of the customized file folder during video recording.
    2. Do not use pure numbers and special characters as the extension name, otherwise the multimedia file will fail to download. It is recommended to use a combination of numbers and letters as the extension name.
    3. The length of the multimedia file name [original file name + extension name] is less than 128 bytes.


    Supported since MSDK 5.0.0

    final KeyCustomExpandFileNameSettings
    static final DJIKeyInfo<CustomExpandNameSettings> KeyCustomExpandFileNameSettings = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CustomExpandFileNameSettings", new DJIValueConverter<>(CustomExpandNameSettings.class)).canGet(true).canSet(true).canListen(false).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CustomExpandNameSettings
    To set and get extension name of the customized file. After calling this interface, the default file name plus the extension name you set will be the name of the nest media file(video or photo). For example, the default name photo name is “DJI_2020012091415_999_WIDE.JPG”, and the extension name of the customized file you set is “Waypoint1”, therefore the name of the new photo will be “DJI_2020012091415_999_WIDE_Waypoint1.JPG”. This operation only takes effect once. If it is required that all media files in one flight have the same extension name, you need to set the same extension name before each photo shooting.

    Note:
    1. Do not set the extension name of the customized file during video recording.
    2. Do not use pure numbers and special characters as the extension name, otherwise the multimedia file will fail to download. It is recommended to use a combination of numbers and letters as the extension name.
    3. The length of the multimedia file name [original file name + extension name] is less than 128 bytes.


    Supported since MSDK 5.0.0

    final KeyCameraStorageInfos
    static final DJIKeyInfo<CameraStorageInfos> KeyCameraStorageInfos = new KeyCameraStorageInfo()
    .canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraStorageInfos
    To get the storage information of the camera SD Card and onboard memory. The onboard memory of M30 and M30T cameras are for internal use only.

    Supported since MSDK 5.0.0

    final KeyCameraVideoCaptionEnabled
    static final DJIKeyInfo<Boolean> KeyCameraVideoCaptionEnabled = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CameraVideoCaptionEnabled", SingleValueConverter.BooleanConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:Boolean
    true means that video subtitles are opened. The location of aircraft, flight time and camera parameters will be stored in video subtitles srt file in SD Card.

    Note: If you want to use this function, please use KeyCameraMode to set the camera mode to VIDEO_NORMAL.

    Supported since MSDK 5.0.0

    final KeyCameraWatermarkSettings
    static final DJIKeyInfo<CameraWatermarkSettings> KeyCameraWatermarkSettings = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CameraWatermarkSettings", new DJIValueConverter<>(CameraWatermarkSettings.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraWatermarkSettings
    Watermark setting of the camera. It can be set whether to generate watermark in photo or video or not. You can set the content that needs to be displayed in the watermark through KeyWatermarkDisplayContentSettings. Set custom watermark text via KeyWatermarkUserCustomInfo.

    Supported since MSDK 5.0.0

    final KeyWatermarkDisplayContentSettings
    static final DJIKeyInfo<WatermarkDisplayContentSettings> KeyWatermarkDisplayContentSettings = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"WatermarkDisplayContentSettings", new DJIValueConverter<>(WatermarkDisplayContentSettings.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:WatermarkDisplayContentSettings
    Content setting of the camera watermark. Content of watermark that needs to display in photo and video can be set. You can set customized content of watermark through KeyWatermarkUserCustomInfo.

    Supported since MSDK 5.0.0

    final KeyWatermarkUserCustomInfo
    static final DJIKeyInfo<String> KeyWatermarkUserCustomInfo = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"WatermarkUserCustomInfo", SingleValueConverter.StringConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:String
    To set and get the customized copywriting in watermark. You can set whether to display customized copywriting through KeyWatermarkDisplayContentSettings.

    Supported since MSDK 5.0.0

    final KeyLockGimbalDuringShootPhotoEnabled
    static final DJIKeyInfo<Boolean> KeyLockGimbalDuringShootPhotoEnabled = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"LockGimbalDuringShootPhotoEnabled", SingleValueConverter.BooleanConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: Boolean

    true means that the gimbal will be locked when shooting photo. If this function is opened, flight movement influence on image effect can be avoided.

    Supported since MSDK 5.0.0

    final KeyAutoTurnOffLEDMode
    static final DJIKeyInfo<AutoTurnOffLEDMode> KeyAutoTurnOffLEDMode = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"AutoTurnOffLEDMode", new SingleValueConverter<>(AutoTurnOffLEDMode.class,AutoTurnOffLEDModeMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: AutoTurnOffLEDMode

    To set LED automatically turn off when shooting photo and recording video. The LEDs include the front arm LED, rear arm LED and navigation LED.

    Supported since MSDK 5.0.0

    Laser Mode
    final KeyLaserWorkMode
    static final DJIKeyInfo<LaserWorkMode> KeyLaserWorkMode = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"LaserWorkMode", new SingleValueConverter<>(LaserWorkMode.class,LaserWorkModeMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: LaserWorkMode

    To set laser working mode. You can choose to enhance mode or open laser according to requirement. The laser module will revert to enhance mode after the camera restarts.

    Supported since MSDK 5.0.0

    final KeyLaserMeasureEnabled
    static final DJIKeyInfo<Boolean> KeyLaserMeasureEnabled = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"LaserMeasureEnabled", SingleValueConverter.BooleanConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("LaserMeasureEnable")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: Boolean

    To open or close the laser module. When KeyLaserWorkModeis set to be OPEN_ON_DEMAND, you can open the laser module through this interface.

    Supported since MSDK 5.0.0

    final KeyLaserMeasureInformation
    static final DJIKeyInfo<LaserMeasureInformation> KeyLaserMeasureInformation = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"LaserMeasureInformation", new DJIValueConverter<>(LaserMeasureInformation.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:LaserMeasureInformation

    Gets the information of the laser sensor, including the location information of the target point, the distance between the target point and the laser sensor, the position of the target point on the camera screen and the status of the laser sensor. The laser sensor must be at least 3m away from the target point.

    Supported since MSDK 5.1.0

    final KeyTapZoomAtTarget
    static final DJIActionKeyInfo<ZoomTargetPointInfo,EmptyMsg> KeyTapZoomAtTarget = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"TapZoomAtTarget", new DJIValueConverter<>(ZoomTargetPointInfo.class),EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:ZoomTargetPointInfo

    Tap zoom at target function, double-click the target point on the screen, the gimbal will automatically rotate to place the target point in the center of the screen. You only need to pass in the target coordinates of the screen, other parameters are reserved fields and can be ignored.

    Supported since MSDK 5.9.0

    Infinity Calibration
    final KeyInfinityCalibrationState
    static final DJIKeyInfo<InfinityCalibrationState> KeyInfinityCalibrationState = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"InfinityCalibrationState", new SingleValueConverter<>(InfinityCalibrationState.class,MFDemarcateStateMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("MFDemarcateState")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: InfinityCalibrationState

    Get the status of infinity calibration. If the state is NOT_CALIBRATE, please call KeyStartInfinityCalibration for infinity calibration.

    Note:
    Only Zenmuse P1 supports infinity calibration.


    Supported since MSDK 5.9.0

    final KeyStartInfinityCalibration
    static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyStartInfinityCalibration = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"StartInfinityCalibration", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false).setInnerIdentifier("StartMFDemarcate")
    Package:dji.sdk.keyvalue.key
    Description:

    Start the camera infinity calibration. If you encounter the following situations, please call this interface for infinity calibration.

  • Zemmuse P1 supports the replacement of a variety of fixed-focus lenses, so it is recommended that you recalibrate after changing the lens.
  • Please listen KeyInfinityCalibrationState. If the state is NOT_CALIBRATE, please recalibrate.
  • Please listen to device health information through addDJIDeviceHealthInfoChangeListener. If you get the following error code, please recalibrate.

  •       1. hms_0x1C000D02: The camera calibration file failed to load, please perform infinity calibration.
          2. hms_0x1C000D03: Infinity calibration data has expired, please perform infinity calibration again.
          3. hms_0x1C000D04: Infinity calibration data has expired, please perform infinity calibration again.


    The following are the infinity calibration steps:

  • Take off and ascend to 102 meters (335 feet) or higher to begin calibration.
  • Call KeyStartInfinityCalibration to start calibration, and the calibration state will change to WAITING_FOR_CALIBRATE.
  • Set the gimbal angle to -90 degrees (perpendicular to the ground). Call KeyCameraFocusTarget to set the object with multiple distinct visual patterns at the center of the camera view as focus, and then the calibration state will be changed to CALIBRATING.
  • After the calibration is completed, the calibration state will change to CALIBRATED. You can use KeyInfinityCalibrationResult to listen the calibration results.


  • Note:
    Only Zenmuse P1 supports infinity calibration.


    Supported since MSDK 5.9.0
    final KeyStopInfinityCalibration
    static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyStopInfinityCalibration = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"StopInfinityCalibration", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false).setInnerIdentifier("StopMFDemarcate")
    Package:dji.sdk.keyvalue.key
    Description:

    Stop the camera infinity calibration.

    Note:
    Only Zenmuse P1 supports infinity calibration.


    Supported since MSDK 5.9.0

    final KeyInfinityCalibrationResult
    static final DJIKeyInfo<InfinityCalibrationResult> KeyInfinityCalibrationResult = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"InfinityCalibrationResult", new SingleValueConverter<>(InfinityCalibrationResult.class,MFDemarcateResultMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("MFDemarcateResult")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: InfinityCalibrationResult

    Get the result of infinity calibration.

    Note:
    Only Zenmuse P1 supports infinity calibration.


    Supported since MSDK 5.9.0

    final KeyLensCalibratedInfinityValue
    static final DJIKeyInfo<Integer> KeyLensCalibratedInfinityValue = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"LensCalibratedInfinityValue", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: Integer

    Calibrated infinity focus. Make sure you have calibrated the lens' infinity focusing with KeyStartInfinityCalibration. When in use, the lens uses infinity focus as calibrated. To help ensure focusing accuracy, recalibrate the infinity focus when there is a large temperature difference between the mission environment and the calibration environment (>15 degrees Celsius).

    Note:
    Only Zenmuse P1 supports infinity calibration.


    Supported since MSDK 5.9.0

    Anti Flicker
    final KeyAntiFlicker
    static final DJIKeyInfo<CameraAntiFlicker> KeyAntiFlicker = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"AntiFlicker", new SingleValueConverter<>(CameraAntiFlicker.class,CameraAntiFlickerMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraAntiFlicker

    Sets anti flicker. Typically used in consumer aircraft.

    Supported since MSDK 5.3.0

    final KeyCameraWhiteBalanceRange
    static final DJIKeyInfo<List<CameraWhiteBalanceMode>> KeyCameraWhiteBalanceRange = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CameraWhiteBalanceRange", new SingleValueConverter<>((Class)List.class,WhiteBalanceRangeMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:list<CameraWhiteBalanceMode>
    To get the white balance range of camera.

    Supported since MSDK 5.3.0

    final KeyWhiteBalance
    static final DJIKeyInfo<CameraWhiteBalanceInfo> KeyWhiteBalance = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"WhiteBalance", new DJIValueConverter<>(CameraWhiteBalanceInfo.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraWhiteBalanceInfo

    Sets white balance. The settable white balance can be obtained through KeyCameraWhiteBalanceRange.

    Supported since MSDK 5.3.0

    Night Scene Mode
    final KeyCameraNightSceneMode
    static final DJIKeyInfo<CameraNightSceneMode> KeyCameraNightSceneMode = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CameraNightSceneMode", new SingleValueConverter<>(CameraNightSceneMode.class,CameraNightSceneModeMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraNightSceneMode

    Night scene mode settings. Turning on night scene mode can improve the camera's shooting effect in low-density environments.

    Note:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to ZOOM_CAMERA or WIDE_CAMERA.

    1. When using KeyTools to create a DJIKey instance, Set CameraLensType to CAMERA_LENS_ZOOM or CAMERA_LENS_WIDE. If it is a DJI single-lens camera or PSDK single-lens camera, set it to CAMERA_LENS_DEFAULT.
    2. Taking photos and videos in night scene mode only supports 1080P.

      Supported since MSDK 5.9.0
    Denoise Level
    final KeyCameraDenoiseLevel
    static final DJIKeyInfo<CameraDenoiseLevel> KeyCameraDenoiseLevel = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CameraDenoiseLevel", new SingleValueConverter<>(CameraDenoiseLevel.class,CameraDenoiseLevelMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraDenoiseLevel

    Denoise level settings, the higher the denoise level, the lower the frame rate. Take the H30 series camera as an example: the default image transmission and video frame rate is 25fps. When the denoise level is low, the frame rate is 25fps. When the denoise level is medium, the frame rate is 15fps. When the denoise level is high, the frame rate is 5fps.

    Note:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to ZOOM_CAMERA or WIDE_CAMERA.

    1. When using KeyTools to create a DJIKey instance, Set CameraLensType to CAMERA_LENS_ZOOM or CAMERA_LENS_WIDE. If it is a DJI single-lens camera or PSDK single-lens camera, set it to CAMERA_LENS_DEFAULT.
    2. Please call KeyCameraNightSceneMode to set the night scene mode to ENABLE.
    3. Only H20N and H30 series cameras support the enhanced noise reduction level function.

      Supported since MSDK 5.9.0
    Laser Fill Light
    final KeyLaserFillLightEnabled
    static final DJIKeyInfo<Boolean> KeyLaserFillLightEnabled = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"LaserFillLightEnabled", SingleValueConverter.BooleanConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("EnableLaserFillLight")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:Boolean

    Laser fill light settings. When the laser fill light is turned on, KeyIRCutEnabled will be turned on at the same time.

    Note:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to ZOOM_CAMERA or WIDE_CAMERA.

    1. When using KeyTools to create a DJIKey instance, Set CameraLensType to CAMERA_LENS_ZOOM or CAMERA_LENS_WIDE. If it is a DJI single-lens camera or PSDK single-lens camera, set it to CAMERA_LENS_DEFAULT.
    2. Please call KeyCameraNightSceneMode to set the night scene mode to ENABLE.
    3. Only H20N and H30 series cameras support the laser fill light function.

      Supported since MSDK 5.9.0
    final KeyIRCutEnabled
    static final DJIKeyInfo<Boolean> KeyIRCutEnabled = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"IRCutEnabled", SingleValueConverter.BooleanConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("IRCutEnable")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:Boolean

    true means to turn on the IR Cut function. When IR Cut is turned on, the image transmission of the zoom lens will become black and white.

    Note:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to ZOOM_CAMERA or WIDE_CAMERA.

    1. When using KeyTools to create a DJIKey instance, Set CameraLensType to CAMERA_LENS_ZOOM or CAMERA_LENS_WIDE. If it is a DJI single-lens camera or PSDK single-lens camera, set it to CAMERA_LENS_DEFAULT.
    2. Please call KeyCameraNightSceneMode to set the night scene mode to ENABLE.

      Supported since MSDK 5.0.0
    Dehaze Mode
    final KeyDehazeMode
    static final DJIKeyInfo<DehazeMode> KeyDehazeMode = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"DehazeMode", new SingleValueConverter<>(DehazeMode.class,DehazeModeMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:DehazeMode

    Dehaze mode settings. Enable the dehaze mode to improve screen transparency in hazy weather. Only H30 series cameras support this feature.

    Note:
    1. To use this function, please call KeyCameraVideoStreamSource and set the video source to ZOOM_CAMERA.

    1. When using KeyTools to create a DJIKey instance, Set CameraLensType to CAMERA_LENS_ZOOM. If it is a DJI single-lens camera or PSDK single-lens camera, set it to CAMERA_LENS_DEFAULT.
    2. This function can be used only when the night scene mode KeyCameraNightSceneMode is disabled.

      Supported since MSDK 5.9.0
    Dehaze Level
    final KeyDehazeLevel
    static final DJIKeyInfo<DehazeLevel> KeyDehazeLevel = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"DehazeLevel", new SingleValueConverter<>(DehazeLevel.class,DehazeLevelMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:DehazeLevel

    Dehaze level Settings. The dehaze level can only be set when KeyDehazeMode is set to ENABLE. Only H30 series cameras support this feature.

    Note:
    1. To use this function, please call KeyCameraVideoStreamSource and set the video source to ZOOM_CAMERA.

    1. When using KeyTools to create a DJIKey instance, Set CameraLensType to CAMERA_LENS_ZOOM. If it is a DJI single-lens camera or PSDK single-lens camera, set it to CAMERA_LENS_DEFAULT.

      Supported since MSDK 5.9.0
    Lens Clean Fog
    final KeyCleanFog
    static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyCleanFog = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"CleanFog", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    To perform once lens defogging operation, Lens clean fog requires continuous heating for 5 seconds.

    Supported since MSDK 5.0.0


    Lens Settings

    final KeyCameraVideoStreamSourceRange
    static final DJIKeyInfo<List<CameraVideoStreamSourceType>> KeyCameraVideoStreamSourceRange = new KeyCameraVideoStreamSourceRange()
    .canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:list<CameraVideoStreamSourceType>
    To get the video source range of camera.

    Supported since MSDK 5.0.0

    final KeyCameraVideoStreamSource
    static final DJIKeyInfo<CameraVideoStreamSourceType> KeyCameraVideoStreamSource = new KeyCameraVideoStreamSource()
    .canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraVideoStreamSourceType
    To set camera video source. For camera with multiple lenses, video have different lens sources. After setting the camera video source, the current live video stream will be switched to the set lens video stream. You can get the list of lens types supported by the current camera through KeyCameraVideoStreamSourceRange. For single lens cameras, DEFAULT_CAMERA is used by default.

    Note:
    When CameraMode is PHOTO_SUPER_RESOLUTION, the camera video source cannot be set to INFRARED_CAMERA.


    Supported since MSDK 5.0.0

    Exposure Mode
    final KeyExposureModeRange
    static final DJIKeyInfo<List<CameraExposureMode>> KeyExposureModeRange = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ExposureModeRange", new SingleValueConverter<>((Class)List.class,CameraExposureModeRangeMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:list<CameraExposureMode>
    To get the exposure mode range of selected lens.

    Supported since MSDK 5.0.0

    final KeyExposureMode
    static final DJIKeyInfo<CameraExposureMode> KeyExposureMode = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ExposureMode", new SingleValueConverter<>(CameraExposureMode.class,CameraExposureModeMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraExposureMode
    To set the exposure mode of the selected lens. The exposure mode decides whether the aperture, shutter speed and ISO can be set automatically or manually. The settable exposure mode can be obtained through KeyExposureModeRange. When CameraVideoStreamSourceType is INFRARED_CAMERA, exposure mode can not be set.

    Note:
    1. Exposure mode settings can only be performed on the lens of the current liveview stream source, otherwise the settings will be unsuccessful.
    2. You could obtain the liveview camera source through KeyCameraVideoStreamSource. Then set the CameraLensType with the current liveview camera source when the DJIKey instance was created using KeyTools.
    3. In the super resolution photo mode, the exposure mode cannot be set.


    Supported since MSDK 5.0.0

    Exposure Compensation
    final KeyExposureCompensationRange
    static final DJIKeyInfo<List<CameraExposureCompensation>> KeyExposureCompensationRange = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ExposureCompensationRange", new SingleValueConverter<>((Class)List.class,CameraExposureCompensationRangeMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:list<CameraExposureCompensation>
    To get the exposure compensation range of camera lens.

    Supported since MSDK 5.0.0

    final KeyExposureCompensation
    static final DJIKeyInfo<CameraExposureCompensation> KeyExposureCompensation = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ExposureCompensation", new SingleValueConverter<>(CameraExposureCompensation.class,CameraExposureCompensationMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraExposureCompensation
    To set exposure compensation value of camera lens. Settable exposure compensation value can be obtained through KeyExposureCompensationRange. To use this function, the CameraExposureMode of the current liveview stream source must be set to PROGRAM.

    Note:
    1. Exposure mode settings can only be performed on the lens of the current liveview stream source, otherwise the settings will be unsuccessful.
    2. You could obtain the liveview camera source through KeyCameraVideoStreamSource.
    3.Then set the CameraLensType with the current liveview camera source when the DJIKey instance was created using KeyTools.


    Supported since MSDK 5.0.0

    Automatic Exposure
    final KeyAELockEnabled
    static final DJIKeyInfo<Boolean> KeyAELockEnabled = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"AELockEnabled", SingleValueConverter.BooleanConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:Boolean
    The automatic exposure lock of camera lens. To use this function, the CameraExposureMode of the current liveview stream source must be set to PROGRAM.

    Supported since MSDK 5.0.0

    final KeyCameraMeteringMode
    static final DJIKeyInfo<CameraMeteringMode> KeyCameraMeteringMode = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CameraMeteringMode", new SingleValueConverter<>(CameraMeteringMode.class,CameraMeteringModeMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraMeteringMode
    To set metering mode of camera lens. If you want to use center metering or average metering function, you only need to set CENTER or AVERAGE once, the lens will operate metering once. If you want to use spot or area metering function, KeySpotMeteringPoint or KeyRegionMeteringArea should be called to set meiering parameters, and the lens will perform spot or area metering once.
    Caution: If you want to use metering function, please use KeyExposureMode to set the exposure mode to PROGRAM, SHUTTER_PRIORITY or APERTURE_PRIORITY, and call KeyAELockEnabled to set AE Lock to false.

    Supported since MSDK 5.2.0

    final KeySpotMeteringPoint
    static final DJIKeyInfo<DoublePoint2D> KeySpotMeteringPoint = new KeySpotMeteringPoint()
    .canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:DoublePoint2D
    Spot metering of the camera lens. (x,y) of DoublePoint2D is the center point coordinate of normalized (0-1).

    Supported since MSDK 5.2.0

    final KeyRegionMeteringArea
    static final DJIKeyInfo<DoubleRect> KeyRegionMeteringArea = new KeyRegionMeteringArea()
    .canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:DoubleRect
    Area metering of the camera lens. (x,y) is the upper left coordinate, and is the coordinate position of normalized (0-1). Width and height are the area size of normalized (0-1) and width and height can not be 0.

    Supported since MSDK 5.2.0

    final KeyISORange
    static final DJIKeyInfo<List<CameraISO>> KeyISORange = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ISORange", new SingleValueConverter<>((Class)List.class,CameraISORangeMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:list<CameraISO>
    To get ISO range of camera lens.

    Note: If you want to use IOS function, please call KeyExposureMode set the exposure mode to MANUAL.

    Supported since MSDK 5.0.0

    final KeyISO
    static final DJIKeyInfo<CameraISO> KeyISO = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ISO", new SingleValueConverter<>(CameraISO.class,CameraISOMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraISO
    To set and get the ISO value of the camera lens. The ISO range can be obtained through KeyISORange.

    Note:
    1. Exposure mode settings can only be performed on the lens of the current liveview stream source, otherwise the settings will be unsuccessful.
    2. You could obtain the liveview camera source through KeyCameraVideoStreamSource.
    3.Then set the CameraLensType with the current liveview camera source when the DJIKey instance was created using KeyTools.
    4.Call KeyExposureMode set the exposure mode to MANUAL.


    Supported since MSDK 5.0.0

    final KeyShutterSpeedRange
    static final DJIKeyInfo<List<CameraShutterSpeed>> KeyShutterSpeedRange = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ShutterSpeedRange", new SingleValueConverter<>((Class)List.class,CameraShutterSpeedRangeMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:list<CameraShutterSpeed>
    To get shutter speed range of camera lens.

    Note: If you want to use IOS function, please call KeyExposureMode set the exposure mode to MANUAL.

    Supported since MSDK 5.0.0

    final KeyShutterSpeed
    static final DJIKeyInfo<CameraShutterSpeed> KeyShutterSpeed = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ShutterSpeed", new SingleValueConverter<>(CameraShutterSpeed.class,CameraShutterSpeedMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraShutterSpeed
    To set shutter speed value of camera lens. Settable shutter speed can be obtained through KeyShutterSpeedRange.

    Note:
    1. Exposure mode settings can only be performed on the lens of the current liveview stream source, otherwise the settings will be unsuccessful.
    2. You could obtain the liveview camera source through KeyCameraVideoStreamSource.
    3.Then set the CameraLensType with the current liveview camera source when the DJIKey instance was created using KeyTools.
    4.Call KeyExposureMode set the exposure mode to MANUAL.


    Supported since MSDK 5.0.0

    Photo Ratio
    final KeyPhotoRatioRange
    static final DJIKeyInfo<List<PhotoRatio>> KeyPhotoRatioRange = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"PhotoRatioRange", new SingleValueConverter<>((Class)List.class,PhotoRatioRangeMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:list<PhotoRatio>
    To get photo ratio of camera lens.

    Note:
    1. Photo ratio settings can only be performed on the lens of the current liveview stream source, otherwise the settings will be unsuccessful.
    2. You could obtain the liveview camera source through KeyCameraVideoStreamSource.
    3.Then set the CameraLensType with the current liveview camera source when the DJIKey instance was created using KeyTools.
    4.You need to call KeyCameraMode to set the camera shooting mode to PHOTO_NORMAL


    Supported since MSDK 5.0.0

    final KeyPhotoRatio
    static final DJIKeyInfo<PhotoRatio> KeyPhotoRatio = new KeyPhotoRatio()
    .canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:PhotoRatio
    To set photo ratio of the camera lens. The settable photo ratio can be obtained through KeyPhotoRatioRange.

    Note:
    1. Photo ratio settings can only be performed on the lens of the current liveview stream source, otherwise the settings will be unsuccessful.
    2. You could obtain the liveview camera source through KeyCameraVideoStreamSource.
    3.Then set the CameraLensType with the current liveview camera source when the DJIKey instance was created using KeyTools.
    4.You need to call KeyCameraMode to set the camera shooting mode to PHOTO_NORMAL


    Supported since MSDK 5.0.0

    Video Resolution and Frame Rate
    final KeyVideoResolutionFrameRateRange
    static final DJIKeyInfo<List<VideoResolutionFrameRate>> KeyVideoResolutionFrameRateRange = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"VideoResolutionFrameRateRange", new SingleValueConverter<>((Class)List.class,VideoResolutionFrameRateRangeMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:list<VideoResolutionFrameRate>
    To get the video resolution and frame rate range of camera lens.

    Supported since MSDK 5.0.0

    final KeyVideoResolutionFrameRate
    static final DJIKeyInfo<VideoResolutionFrameRate> KeyVideoResolutionFrameRate = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"VideoResolutionFrameRate", new DJIValueConverter<>(VideoResolutionFrameRate.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:VideoResolutionFrameRate
    To set the video resolution and frame rate range of the camera lens. Settable video resolution and frame rate can be obtained through KeyVideoResolutionFrameRateRange.

    Note: If you want to use this function, please use KeyCameraMode to set the camera mode to VIDEO_NORMAL.

    Supported since MSDK 5.0.0

    final KeyCameraZoomRatiosRange
    static final DJIKeyInfo<ZoomRatiosRange> KeyCameraZoomRatiosRange = new KeyCameraZoomRatiosRange()
    .canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:list<ZoomRatiosRange>
    To get the zoom ratios range of camera lens.

    Supported since MSDK 5.3.0

    final KeyCameraZoomRatios
    static final DJIKeyInfo<Double> KeyCameraZoomRatios = new KeyCameraZoomRatios()
    .canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:Double
    Set the zoom ratios of the camera lens. The recommended minimum accuracy is 0.1. Different lenses have different camera ratios ranges, please call KeyCameraZoomRatiosRange to get the zoom ratios supported by the lens.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to ZOOM_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_ZOOM. If it is an M3M aircraft, set it to CAMERA_LENS_RGB. If it is a DJI single-lens camera or PSDK single-lens camera, set it to CAMERA_LENS_DEFAULT.


    Supported since MSDK 5.0.0

    final KeyCameraZoomFocalLength
    static final DJIKeyInfo<Integer> KeyCameraZoomFocalLength = new KeyCameraZoomFocalLength()
    .canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:Interger
    Gets the focal length of the zoom lens, unit: mm. Please use KeyCameraZoomRatios to set the zoom ratios.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to ZOOM_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_ZOOM. If it is an M3M aircraft, set it to CAMERA_LENS_RGB. If it is a DJI single-lens camera or PSDK single-lens camera, set it to CAMERA_LENS_DEFAULT.


    Supported since MSDK 5.0.0

    final KeyCameraFocusMode
    static final DJIKeyInfo<CameraFocusMode> KeyCameraFocusMode = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CameraFocusMode", new SingleValueConverter<>(CameraFocusMode.class,CameraFocusModeMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraFocusMode
    To set and get focus mode of zoom lens.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to ZOOM_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_ZOOM. If it is an M3M aircraft, set it to CAMERA_LENS_RGB. If it is a DJI single-lens camera or PSDK single-lens camera, set it to CAMERA_LENS_DEFAULT.
    3. Zenmuse P1, Mini 3 and Mini 3 Pro only support settings: MANUAL and AF.


    Supported since MSDK 5.0.0

    final KeyCameraFocusRingMinValue
    static final DJIKeyInfo<Integer> KeyCameraFocusRingMinValue = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CameraFocusRingMinValue", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:Integer
    The minimum settable value that the camera manually focusing.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to ZOOM_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_ZOOM. If it is an M3M aircraft, set it to CAMERA_LENS_RGB. If it is a DJI single-lens camera or PSDK single-lens camera, set it to CAMERA_LENS_DEFAULT.


    Supported since MSDK 5.0.0

    final KeyCameraFocusRingMaxValue
    static final DJIKeyInfo<Integer> KeyCameraFocusRingMaxValue = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CameraFocusRingMaxValue", SingleValueConverter.IntegerConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:Integer
    The maximum settable value that the camera manually focusing.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to ZOOM_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_ZOOM. If it is an M3M aircraft, set it to CAMERA_LENS_RGB. If it is a DJI single-lens camera or PSDK single-lens camera, set it to CAMERA_LENS_DEFAULT.


    Supported since MSDK 5.0.0

    final KeyCameraFocusRingValue
    static final DJIKeyInfo<Integer> KeyCameraFocusRingValue = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CameraFocusRingValue", SingleValueConverter.IntegerConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:Integer
    The manually focusing value of the camera. The maximum and minimum settable value that the camera manually focusing can be obtained through KeyCameraFocusRingMinValue and KeyCameraFocusRingMaxValue. In MANUAL mode, camera will focus once with the center point of the screen as the focus target after setting the focus value.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to ZOOM_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_ZOOM. If it is an M3M aircraft, set it to CAMERA_LENS_RGB. If it is a DJI single-lens camera or PSDK single-lens camera, set it to CAMERA_LENS_DEFAULT.


    Supported since MSDK 5.0.0

    final KeyCameraFocusTarget
    static final DJIKeyInfo<DoublePoint2D> KeyCameraFocusTarget = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"CameraFocusTarget", new DJIValueConverter<>(DoublePoint2D.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:DoublePoint2D
    The focus target of camera automaic focus. [0,0] means the upper left corner of camera screen. [1,1] means the lower right corner of camera screen. In AF mode, camera will automatically focus on the focus target once after setting focus target.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to ZOOM_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_ZOOM. If it is an M3M aircraft, set it to CAMERA_LENS_RGB. If it is a DJI single-lens camera or PSDK single-lens camera, set it to CAMERA_LENS_DEFAULT.


    Supported since MSDK 5.0.0


    Infrared Function

    Temperature Measurement
    final KeyThermalTemperatureMeasureMode
    static final DJIKeyInfo<ThermalTemperatureMeasureMode> KeyThermalTemperatureMeasureMode = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalTemperatureMeasureMode", new SingleValueConverter<>(ThermalTemperatureMeasureMode.class,CameraThermalMeasurementModeMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("CameraThermalMeasurementMode")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:ThermalTemperatureMeasureMode
    To set the temperature measurement mode. It supports two modes: spot measurement and region temperature measurement.

    Supported since MSDK 5.0.0

    final KeyThermalSpotMetersurePoint
    static final DJIKeyInfo<DoublePoint2D> KeyThermalSpotMetersurePoint = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalSpotMetersurePoint", new DJIValueConverter<>(DoublePoint2D.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("ThermalSpotMeteringTargetPoint")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: DoublePoint2D

    To set the location of the point that needs to be measured. [0,0] means the upper left corner of camera screen. [1,1] means the lower right corner of camera screen. After setting the location of temperature measuring point, current temperature of measuring point can be obtained through KeyThermalSpotMetersureTemperature.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.
    3. Call KeyThermalTemperatureMeasureMode to set ThermalTemperatureMeasureMode to SPOT.


    Supported since MSDK 5.0.0

    final KeyThermalSpotMetersureTemperature
    static final DJIKeyInfo<Double> KeyThermalSpotMetersureTemperature = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalSpotMetersureTemperature", SingleValueConverter.DoubleConverter).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("ThermalTemperatureData")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: Double

    To get current temperature of measuring point. Calling KeyThermalSpotMetersurePoint to set current location of temperature measuring point.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.
    3. Call KeyThermalTemperatureMeasureMode to set ThermalTemperatureMeasureMode to SPOT.


    Supported since MSDK 5.0.0

    final KeyThermalRegionMetersureArea
    static final DJIKeyInfo<DoubleRect> KeyThermalRegionMetersureArea = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalRegionMetersureArea", new DJIValueConverter<>(DoubleRect.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("ThermalSpotMeteringArea")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: DoubleRect

    To set regional location that needs temperature measurement. [0,0] means the upper left corner of camera screen. [1,1] means the lower right corner of camera screen. After setting the location of temperature measuring point, temperature information of current temperature measuring region can be obtained through KeyThermalRegionMetersureTemperature.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.
    3. Call KeyThermalTemperatureMeasureMode to set ThermalTemperatureMeasureMode to REGION.


    Supported since MSDK 5.0.0

    final KeyThermalRegionMetersureTemperature
    static final DJIKeyInfo<ThermalAreaMetersureTemperature> KeyThermalRegionMetersureTemperature = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalRegionMetersureTemperature", new DJIValueConverter<>(ThermalAreaMetersureTemperature.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("ThermalAreaTemperatureAggregations")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: ThermalAreaMetersureTemperature

    To get current temperature information of current temperature measuring region. The information includes average temperatur, minimum temperature and maximum temperature. Regional location that needs temperature measurement can be obtained through KeyThermalRegionMetersureArea.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.
    3. Call KeyThermalTemperatureMeasureMode to set ThermalTemperatureMeasureMode to REGION.


    Supported since MSDK 5.0.0

    final KeyThermalGainMode
    static final DJIKeyInfo<ThermalGainMode> KeyThermalGainMode = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalGainMode", new SingleValueConverter<>(ThermalGainMode.class,CameraThermalGainModeMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("CameraThermalGainMode")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: ThermalGainMode

    To set and get gain mode. The setting operation is time-consuming and takes 3 to 5 seconds to take effect. The temperature applicable range under different gain modes can be obtained through KeyThermalGainModeTemperatureRange. In high gain mode, a narrower temperature range can be captured with a higher sensitivity to temperature differences. In low gain mode, a wider temperature range can be captured with a lower sensitivity to temperature difference.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0

    final KeyThermalGainModeTemperatureRange
    static final DJIKeyInfo<ThermalGainModeTemperatureRange> KeyThermalGainModeTemperatureRange = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalGainModeTemperatureRange", new DJIValueConverter<>(ThermalGainModeTemperatureRange.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: ThermalGainModeTemperatureRange

    To get temperature range of different gain modes.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0

    final KeyThermalPaletteRange
    static final DJIKeyInfo<List<CameraThermalPalette>> KeyThermalPaletteRange = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalPaletteRange", new SingleValueConverter<>((Class)List.class,CameraThermalPaletteRangeMsg.class)).canGet(true).canSet(false).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("CameraThermalPaletteRange")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:list<CameraThermalPalette>
    To get settable palette range of infrared lens.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0

    final KeyThermalPalette
    static final DJIKeyInfo<CameraThermalPalette> KeyThermalPalette = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalPalette", new SingleValueConverter<>(CameraThermalPalette.class,CameraThermalPaletteMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("CameraThermalPalette")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: CameraThermalPalette

    To set palette type. Settable palette range can be obtained through KeyThermalPaletteRange. Distinct colors are used to show temperature differences in the thermal image, which are related to grayscale intensity. The temperature range of the image is mapped to 256 colors and displayed in the 8-bit JPEG or MP4 format.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0

    final KeyThermalIsothermEnabled
    static final DJIKeyInfo<Boolean> KeyThermalIsothermEnabled = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalIsothermEnabled", SingleValueConverter.BooleanConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("CameraThermalIsothermEnabled")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: Boolean

    Enable or disable isotherms. Turn on the isotherm function to see objects in the specified temperature range more intuitively. The temperature range is set by two thresholds of high temperature and low temperature. When disabled, all 256 values (8-bits) are dedicated to the temperature histogram of the scene. When enabled, only 128 values (0-127) are mapped linearly to temperature. Then three bands 128-175, 176-223 and 224-255 can be mapped to the user defined temperatures to highlight them to the user. Using some of the false color palettes (like RainbowIso) results in a thermal image that is grey scale except for three specific bands highlighted by either reds, blues or greens.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0

    final KeyThermalIsothermUnit
    static final DJIKeyInfo<ThermalIsothermUnit> KeyThermalIsothermUnit = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalIsothermUnit", new SingleValueConverter<>(ThermalIsothermUnit.class,CameraThermalIsothermUnitMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("CameraThermalIsothermUnit")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: ThermalIsothermUnit

    Units for isotherms. Sets the unit of the Isotherm ranges to either Celsius or percent. Different units results in different value ranges for Isotherms. If the unit is percent, the settable value range is [0,100]. If the unit is Celsius, the settable upper value and lower value can refer to KeyThermalGainModeTemperatureRange.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.
    3. H20 series cameras do not support setting isotherm units.

    Supported since MSDK 5.0.0

    final KeyThermalIsothermUpperValue
    static final DJIKeyInfo<Integer> KeyThermalIsothermUpperValue = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalIsothermUpperValue", SingleValueConverter.IntegerConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("CameraThermalIsothermUpperValue")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: Integer

    The upper threshold value for Isotherm. All temperature values above this value will use the colors 224-255 in the palette.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0

    final KeyThermalIsothermLowerValue
    static final DJIKeyInfo<Integer> KeyThermalIsothermLowerValue = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalIsothermLowerValue", SingleValueConverter.IntegerConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("CameraThermalIsothermLowerValue")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: Integer

    The lower threshold value for Isotherm. Temperature values between the lower and medium isotherm thresholds will be displayed in 128-175 colors in the palette.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0

    final KeyThermalDisplayMode
    static final DJIKeyInfo<ThermalDisplayMode> KeyThermalDisplayMode = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalDisplayMode", new SingleValueConverter<>(ThermalDisplayMode.class,CameraDisplayModeMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("CameraDisplayMode")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: ThermalDisplayMode

    To set display mode of infrared lens. The mode includes infrared display and split screen display.
    If you need to set the infrared lens to the split screen display mode, please call this interface to set the display mode to PIP, and then call KeyThermalPIPPosition to set the display position to SIDE_BY_SIDE.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0

    final KeyThermalPIPPosition
    static final DJIKeyInfo<ThermalPIPPosition> KeyThermalPIPPosition = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalPIPPosition", new SingleValueConverter<>(ThermalPIPPosition.class,PIPPositionMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: ThermalPIPPosition

    Sets the display position of the infrared lens split screen. Please call KeyThermalDisplayMode to set the display mode to split screen display PIP. Then call this interface to set the display position to SIDE_BY_SIDE.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.1.0

    FFC Calibration
    final KeyThermalFFCMode
    static final DJIKeyInfo<ThermalFFCMode> KeyThermalFFCMode = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalFFCMode", new SingleValueConverter<>(ThermalFFCMode.class,CameraThermalFFCModeMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("CameraThermalFFCMode")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: ThermalFFCMode

    To set FFC calibration mode. FFC calibration is a function of infrared lens. Image quality will be improved after the calibration.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0

    final KeyThermalTriggerFFC
    static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyThermalTriggerFFC = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalTriggerFFC", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Manually trigger the FFC calibration mode once. During the calibration process, the camera screen may pause for 1 second, and the camera will make a "click" sound.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0

    final KeyThermalZoomRatios
    static final DJIKeyInfo<Double> KeyThermalZoomRatios = new KeyThermalZoomRatios()
    .canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: Double

    To set the infrared zoom ratio. And 1x, 2x, 4x and 8x zoom ratio is supported.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0

    final KeyLinkZoomEnabled
    static final DJIKeyInfo<Boolean> KeyLinkZoomEnabled = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"LinkZoomEnabled", SingleValueConverter.BooleanConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("EnableZoomLinkage")
    Package:dji.sdk.keyvalue.key
    Description:


    Parameter:Boolean

    Enable or disable the link zoom function. After enabling the link zoom function, call KeyThermalZoomRatios to achieve synchronous zooming of the infrared lens and the zoom lens. In the split-screen mode PIP, the user can compare the images of the infrared lens and the zoom lens more efficiently.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.3.0

    Super Resolution
    final KeyThermalSuperResolution
    static final DJIKeyInfo<Boolean> KeyThermalSuperResolution = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalSuperResolution", SingleValueConverter.BooleanConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: Boolean

    To set the infrared super resolution open and close.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0

    Region of Interest (ROI)
    final KeyThermalROI
    static final DJIKeyInfo<ThermalROI> KeyThermalROI = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalROI", new SingleValueConverter<>(ThermalROI.class,CameraThermalROIMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false).setInnerIdentifier("CameraThermalROI")
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: ThermalROI

    To set the region of interest (ROI). User can choose ROI based on their needs. When the region of interest is full screen, the color levels of the entire image will be distributed in the default configuration. For instance, if there is a large patch of sky (relatively low temperature) in your image, much of the color spectrum will be allocated to the lower range, meaning that other parts of the spectrum will have a lower contrast. In this case, you may select “Sky excluded (33%)” or “Sky excluded (50%)” to ignore areas of the sky so that most of the spectrum can be allocated to remaining areas, providing higher contrast and utility for analysis.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0

    final KeyThermalScene
    static final DJIKeyInfo<ThermalScene> KeyThermalScene = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalScene", new SingleValueConverter<>(ThermalScene.class,ThermalSceneMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: ThermalScene

    To set thermal scene. It supports default and inspection scenarios, as well as custom scenarios. Users can set and save customized parameters according to their needs. The camera will adjust the camera parameters according to different scenes to optimize the image processing.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0

    final KeyThermalDDE
    static final DJIKeyInfo<Integer> KeyThermalDDE = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalDDE", SingleValueConverter.IntegerConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: Integer

    To set thermal Digital Detail Enhancement (DDE). The sharpness of images and outlines can be improved. Manual setting is only possible when the KeyThermalScene is MANUAL.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0

    final KeyThermalContrast
    static final DJIKeyInfo<Integer> KeyThermalContrast = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalContrast", SingleValueConverter.IntegerConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: Integer

    To set thermal contrast. The ratio of screen black to white. The larger the ratio, the richer the color performance. Manual setting is only possible when the KeyThermalScene is Scene MANUAL.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0</code

    final KeyThermalBrightness
    static final DJIKeyInfo<Integer> KeyThermalBrightness = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"ThermalBrightness", SingleValueConverter.IntegerConverter).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: Integer

    To set thermal brightness. Manual setting is only possible when the KeyThermalScene is MANUAL.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to INFRARED_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_THERMAL.


    Supported since MSDK 5.0.0


    Multispectral

    final KeyMultiSpectralFusionType
    static final DJIKeyInfo<MultiSpectralFusionType> KeyMultiSpectralFusionType = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"MultiSpectralFusionType", new SingleValueConverter<>(MultiSpectralFusionType.class,MultiSpectralFusionTypeMsg.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: MultiSpectralFusionType

    Sets the fusion type to coordinate the video feeds from both the RGB sensor and single-band sensors.
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to NDVI_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_MS_NDVI.


    Supported since MSDK 5.2.0

    final KeyMultiSpectralFusionDisplayRange
    static final DJIKeyInfo<MultiSpectralFusionDisplayRange> KeyMultiSpectralFusionDisplayRange = new DJIKeyInfo<>(componentType.value(),subComponentType.value(),"MultiSpectralFusionDisplayRange", new DJIValueConverter<>(MultiSpectralFusionDisplayRange.class)).canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: MultiSpectralFusionDisplayRange

    Sets the multispectral fusion display range. the settable value range is [-10,10]. In the pilot this range is mapped to [-1,1].
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to NDVI_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_MS_NDVI.


    Supported since MSDK 5.2.0

    final KeyMultiSpectralDisplayMode
    static final DJIKeyInfo<MultiSpectralDisplayMode> KeyMultiSpectralDisplayMode = new KeyMultiSpectralDisplayMode()
    .canGet(true).canSet(true).canListen(true).canPerformAction(false).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter: MultiSpectralDisplayMode

    To set display mode of NDVI lens. The mode includes NDVI display and split screen display.
    If you need to set the NDVI lens to the split screen display mode, please call this interface to set the display mode to PIP
    Notice:
    1. To use this function, please call KeyCameraVideoStreamSource to set the video source to NDVI_CAMERA.
    2. When using KeyTools to create a DJIKey instance, please set CameraLensType to CAMERA_LENS_MS_NDVI.


    Supported since MSDK 5.2.0


    Basic Setting

    Parameter Reset
    final KeyResetCameraSetting
    static final DJIActionKeyInfo<EmptyMsg,EmptyMsg> KeyResetCameraSetting = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"ResetCameraSetting", EmptyValueConverter.converter,EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    To reset camera parameters.

    Supported since MSDK 5.0.0

    Format Storage
    final KeyFormatStorage
    static final DJIActionKeyInfo<CameraStorageLocation,EmptyMsg> KeyFormatStorage = new DJIActionKeyInfo<>(componentType.value(),subComponentType.value(),"FormatStorage", new SingleValueConverter<>(CameraStorageLocation.class,CameraStorageLocationMsg.class),EmptyValueConverter.converter).canGet(false).canSet(false).canListen(false).canPerformAction(true).setIsEvent(false)
    Package:dji.sdk.keyvalue.key
    Description:

    Parameter:CameraStorageLocation
    To format storage. M30 and M30T camera only supports SD Card.

    Supported since MSDK 5.0.0