DJI Mobile SDK Documentation

      class RemoteController

      class RemoteController extends BaseComponent
      Package:dji.sdk.remotecontroller
      Inherits From:BaseComponent
      Description:

      This class represents the remote controller of the aircraft. It provides methods to change the settings of the physical remote controller. For some products (e.g. Inspire 1 and Matrice 100), the class provides methods to manager the slave/master mode of the remote controllers. A remote controller is a device that can have a GPS, battery, radio, buttons, sticks, wheels, and output ports for video. The mobile device is connected to the remote controller, which is always sending out information about what everything is doing. The normal remote controller is called the master. A slave wirelessly connects to the master remote controller at 5 GHz, and the aircraft can also download information to the slave. The slave can send gimbal control commands to the master. This configuration allows one person to fly the aircraft while another person controls the gimbal. This object is available from the Aircraft subclass off BaseProduct.

      Class Members:
      Master/Slave RC
      class
      enum
      enum RCMode
      @EXClassNullAway
      enum RCMode
      Package:dji.common.remotecontroller
      SDK Key:RemoteControllerKey.MODE
      Description:

      Remote Controller mode of operation can be normal (single RC connected to aircraft), master, slave, or unknown.

      Enum Members:
      MASTERRemote Controller is a master (will route a connected slave Remote Controller's commands to the aircraft).
      SLAVERemote Controller is currently a slave Remote Controller (sends commands to aircraft through a master Remote Controller).
      NORMALRemote Controller is not connected to another Remote Controller.
      UNKNOWNThe Remote Controller's mode is unknown.
      Class Members:
      enum CalibrationState
      @EXClassNullAway
      enum CalibrationState
      Package:dji.common.remotecontroller
      Description:

      Remote Controller's calibration mode.

      Enum Members:
      NORMALThere is currently no Remote Controller calibration happening.
      MIDDLECurrently recording the joystick in its center position (joystick is untouched).
      LIMITSCurrently recording the extreme joystick positions, when joysticks are all the way to their max in any direction (left, right, up, or down).
      QUITThe Remote Controller is exiting calibration.
      Class Members:
      enum ConnectToMasterResult
      @EXClassNullAway
      enum ConnectToMasterResult
      Package:dji.common.remotecontroller
      Description:

      Result when a slave Remote Controller tries to join a master Remote Controller.

      Enum Members:
      ACCEPTEDThe slave Remote Controller's attempt to join the master Remote Controller was successful.
      PASSWORD_ERRORThe slave Remote Controller's attempt to join the master Remote Controller was unsuccessful due to a password error.
      REJECTEDThe slave Remote Controller's attempt to join the master Remote Controller was rejected.
      MAXIMUM_CAPACITYThe slave Remote Controller's attempt to join the master Remote Controller was unsuccessful because the master Remote Controller is at the maximum number of slaves it can have.
      TIMEOUTThe slave Remote Controller's attempt to join the master Remote Controller was unsuccessful because the request timed out.
      UNKNOWNThe result of the slave Remote Controller's attempt to join the master Remote Controller is unknown.
      Class Members:
      enum RequestGimbalControlResult
      @EXClassNullAway
      enum RequestGimbalControlResult
      Package:dji.common.remotecontroller
      SDK Key:RemoteControllerKey.REQUEST_GIMBAL_CONTROL
      Description:

      Result when a slave Remote Controller requests permission to control the gimbal.

      Enum Members:
      ACCEPTEDThe master Remote Controller agrees to the slave's request.
      REJECTEDThe master Remote Controller denies the slave's request. If the slave Remote Controller wants to control the gimbal, it must send a request to the master Remote Controller first. Then the master Remote Controller can decide to approve or deny the request.
      TIMEOUTThe slave Remote Controller's request timed out.
      UNKNOWNThe slave Remote Controller's request is unknown.
      Class Members:
      State Updates - Master/Slave
      enum
      enum GimbalMappingStyle
      @EXClassNullAway
      enum GimbalMappingStyle
      Package:dji.common.remotecontroller
      SDK Key:RemoteControllerKey.GIMBAL_MAPPING_STYLE
      Description:

      The gimbal control stick mapping styles.

      Enum Members:
      DEFAULTDefault
      CUSTOMCustom
      UNKNOWNUnknown
      Class Members:
      State Updates
      class
      enum SecondaryVideoOutputPort
      @EXClassNullAway
      enum SecondaryVideoOutputPort
      Package:dji.common.remotecontroller
      Description:

      Remote Controller port to which to send secondary video (in addition to USB video sent to the Mobile Device).

      Enum Members:
      HDMIHDMI port.
      SDISDI port.
      UnknownUnknown.
      Class Members:
      enum SecondaryVideoDisplayMode
      @EXClassNullAway
      enum SecondaryVideoDisplayMode
      Package:dji.common.remotecontroller
      Description:

      Defines the combination of video sources to form the secondary output video. The secondary output can display video streams from one or two input sources. When the encode mode is single: Source 1 represents video from one of the Source1Only input ports (HDMI or AV). Source 2 represents video from EXT input port (HD Gimbal Camera). When the encode mode is dual: Source 1 represents video from HDMI input port. Source 2 represents video from AV input port.

      Enum Members:
      SOURCE_1_ONLYDisplays video from Source 1 only. When the current encode mode is single, the secondary output will display video from HDMI or AV input. When the current encode mode is dual, the secondary output will display video from HDMI input.
      SOURCE_2_ONLYDisplays video from Source 2 only. When the current encode mode is single, the secondary output will display video from HD Gimbal camera. When the current encode mode is dual, the secondary output will display video from AV input.
      SOURCE_1_MAINDisplays the video from Source 1 as the main subject, and the video from Source 2 in a mini window (Picture in Picture, or PIP).
      SOURCE_2_MAINDisplays the video from Source 2 as the main subject, and the video from Source 1 in a mini window (Picture in Picture, or PIP).
      UNKNOWNUnknown output mode.
      Class Members:
      enum SecondaryVideoOSDUnit
      @EXClassNullAway
      enum SecondaryVideoOSDUnit
      Package:dji.common.remotecontroller
      Description:

      OSD data units.

      Enum Members:
      IMPERIALImperial.
      METRICMetric.
      UNKNOWNUnknown.
      Class Members:
      enum SecondaryVideoFormat
      @EXClassNullAway
      enum SecondaryVideoFormat
      Package:dji.common.remotecontroller
      Description:

      Secondary output video resolution and frame rate.

      Enum Members:
      RESOLUTION_1080I_60FPS1080I 60FPS.
      RESOLUTION_1080I_50FPS1080I 50FPS.
      RESOLUTION_1080P_60FPS1080P 60FPS.
      RESOLUTION_1080P_50FPS1080P 50FPS.
      RESOLUTION_1080P_30FPS1080P 30FPS.
      RESOLUTION_1080P_25FPS1080P 25FPS.
      RESOLUTION_1080P_24FPS1080P 24FPS.
      RESOLUTION_720P_60FPS720P 60FPS.
      RESOLUTION_720P_50FPS720P 50FPS.
      RESOLUTION_720P_30FPS720P 30FPS.
      RESOLUTION_720P_25FPS720P 25FPS.
      RESOLUTION_720P_24FPS720P 24FPS.
      UNKNOWNUnknown.
      Class Members:
      enum PIPPosition
      @EXClassNullAway
      enum PIPPosition
      Package:dji.common.remotecontroller
      Description:

      PIP (Picture In Picture) position on the screen relative to the main subject video.

      Enum Members:
      TOP_LEFTPIP is on the screen's top left.
      TOP_RIGHTPIP is on the screen's top right.
      BOTTOM_LEFTPIP is on the screen's bottom left.
      BOTTOM_RIGHTPIP is on the screen's bottom right.
      UNKNOWNPIP is on the screen's bottom right.
      Class Members:
      class
      Aircraft Pairing
      enum
      enum PairingState
      @EXClassNullAway
      enum PairingState
      Package:dji.common.remotecontroller
      SDK Key:RemoteControllerKey.PAIRING_STATE
      Description:

      Remote Controller pairing state.

      Enum Members:
      UNPAIREDThe Remote Controller is not pairing.
      PAIRINGThe Remote Controller is currently pairing.
      FirmwareSwitchingThe Remote Controller is switching rc firmware.
      FirmwareSwitchedThe remote control has finished switching RC firmware.
      PAIREDThe Remote Controller's pairing was completed.
      UNKNOWNThe Remote Controller's pairing state is unknown.
      Class Members:
      Customize RC
      class
      enum GimbalAxis
      @EXClassNullAway
      enum GimbalAxis
      Package:dji.common.remotecontroller
      SDK Key:LEFT_WHEEL_GIMBAL_CONTROL_AXIS
      Description:

      Defines what the Gimbal Dial (upper left dial on the Remote Controller) will control.

      Enum Members:
      PITCHThe upper left dial will control the gimbal's pitch.
      ROLLThe upper left dial will control the gimbal's roll.
      YAWThe upper left dial will control the gimbal's yaw.
      Class Members:
      Mobile Device Charging
      enum
      enum ChargeMobileMode
      @EXClassNullAway
      enum ChargeMobileMode
      Package:dji.common.remotecontroller
      SDK Key:RemoteControllerKey.CHARGE_MOBILE_MODE
      Description:

      Modes to charge an iOS mobile device. Only supported by Inspire 2.

      Enum Members:
      NEVERThe remote controller does not charge the mobile device.
      ALWAYSThe remote controller charges the mobile device until the the mobile device is fully charged.
      INTELLIGENTThe remote controller charges the mobile device in an intelligent mode: The remote controller starts charging when the mobile device's battery is lowered then 20% and stops charging when the mobile device's battery is above 50%. It is only supported by Inspire 2.
      UnknownThe Remote Controller's charging mode is unknown.
      Class Members:
      Cendence Button Action
      enum
      enum ButtonAction
      enum ButtonAction
      Package:dji.common.remotecontroller
      Description:

      Actions that can be assigned to a customizable button. Some of the actions are reserved and the firmware will execute the corresponding actions even when the application is not connected. Some of the actions are defined by the mobile applications. The application is responsible for implementing the non firmware actions. The definitions used in DJI Go are provided. It is usually recommended to follow DJI Go's definitions for compability so if DJI Go is used at the same time as the SDK application the actions will be expected in both applications.

      Enum Members:
      CameraSettingToggle the camera setting view. The action has to be implemented by the application itself.
      GimbalCenterResets the gimbal attitude. The pitch and the yaw will point to the origin. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      MapSwitchSwitch the live view and the map view. The action has to be implemented by the application itself.
      ClearRouteClear the flight path in the map view. The action has to be implemented by the application itself.
      BatteryToggle the battery setting view. The action has to be implemented by the application itself.
      CenterMeteringTrigger central exposure metering. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      AeLockToggles the AE Lock setting. The action has to be implemented by the application itself.
      ForeArmToggle the LEDs on the four arms. The action has to be implemented by the application itself.
      RESET_FPV_GIMBALReset FPV gimbal attitude to the center, the gimbal will rotate 45 degrees in pitch axis up and down when the action is trigger. It is supported by the firmware of Matrice 200 series and Matrice 200 V2 series. For the other products, the action has to be implemented by the application itself.
      LiveViewExpandExpand the live view from the FPV camera. The action has to be implemented by the application itself.
      QUICK_SPINTrigger a Quick Spin. It is supported by the firmware of Inspire 2. For the other products, the action has to be implemented by the application itself.
      PlayBackToggle the playback view. The action has to be implemented by the application itself.
      CenterFocusTriggers focusing at the center of the live view. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      GetGimbalControlRequest gimbal control (for the slave remote controller). The action has to be implemented by the application itself.
      GimbalModeToggle YAW_FOLLOW and FREE for gimbal. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      QuickSettingToggle the customizable button setting view. The action has to be implemented by the application itself.
      AFMFToggle AF and MF for camera. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CloseTipsDismiss the warning tips. The action has to be implemented by the application itself.
      SmartGearToggle the automatic movement of the landing gear. The action has to be implemented by the application itself.
      ReviewWarningToggle the warning list view. The action has to be implemented by the application itself.
      SWITCH_FREQUENCYSwitch frequency bands of the remote controller. It is supported by the firmware of Matrice 200 series. For the other products, the action has to be implemented by the application itself.
      UpdateHomeDroneSet the home location of the aircraft to the current location of the aircraft. The action has to be implemented by the application itself.
      UpdateHomeRCSet the home location of the aircraft to the current location of the remote controller. The action has to be implemented by the application itself.
      FocusTrigger the camera focus. It is supported by the firmware of Matrice 200 series and Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CompositionModeToggle the composition mode for the Spotlight. The action has to be implemented by the application itself.
      FocusPeakingToggle the peak focus. The action has to be implemented by the application itself.
      GridLineToggle the display of grid. The action has to be implemented by the application itself.
      HistogramToggle the display of histogram. The action has to be implemented by the application itself.
      AEMFSwitchSwitch the white balance settings. The action has to be implemented by the application itself.
      OverExposureToggle the over-exposure warning. The action has to be implemented by the application itself.
      GIMBAL_YAW_RECENTERReset the gimbal yaw to align with the aircraft heading. The action has to be implemented by the application itself.
      TOGGLE_LANDING_GEARRetract or deploy the landing gear. It is supported by the firmware of Inspire 2. For the other products, the action has to be implemented by the application itself.
      CloseRadarMapToggle the radar map. The action has to be implemented by the application itself.
      CloseDownVPSToggle the downward vision sensors. The action has to be implemented by the application itself.
      CloseFrontAssToggle the forward obstacle avoidance. The action has to be implemented by the application itself.
      SwitchGimbalFpvSwitch the video source of the secondary video feeder between fpv and camera. The action has to be implemented by the application itself.
      FullScreenToggle the full screen mode. The action has to be implemented by the application itself.
      CUSTOM100Zoom out. It is only supported by Z30 camera. It is supported by the firmware of Matrice 200 V2 series. For the other products, the action has to be implemented by the application itself.
      CUSTOM101Zoom in. It is only supported by Z30 camera. It is supported by the firmware of Matrice 200 V2 series. For the other products, the action has to be implemented by the application itself.
      CUSTOM102Custom action with value 102. This value is reserved for SDK applications.
      CUSTOM103Toggle the DisplayMode. It is only supported by XT2 camera. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CUSTOM104Custom action with value 104. This value is reserved for SDK applications.
      CUSTOM105Custom action with value 105. This value is reserved for SDK applications.
      CUSTOM106Custom action with value 106. This value is reserved for SDK applications.
      CUSTOM107Custom action with value 107. This value is reserved for SDK applications.
      CUSTOM108Custom action with value 108. This value is reserved for SDK applications.
      CUSTOM109Custom action with value 109. This value is reserved for SDK applications.
      NOT_DEFINEDNot defined. It is used to present that no action is bound to a button.
      CUSTOM150Triggers the widget of the payload device in the index of 0. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CUSTOM151Triggers the widget of the payload device in the index of 1. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CUSTOM152Triggers the widget of the payload device in the index of 2. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CUSTOM153Triggers the widget of the payload device in the index of 3. It is supported by the firmware of Matrice 200 V2 series. For the other products, the action has to be implemented by the application itself.
      CUSTOM154Triggers the widget of the payload device in the index of 4. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CUSTOM155Triggers the widget of the payload device in the index of 5. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CUSTOM156Triggers the widget of the payload device in the index of 6. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CUSTOM157Triggers the widget of the payload device in the index of 7. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CUSTOM158Triggers the widget of the payload device in the index of 8. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CUSTOM159Triggers the widget of the payload device in the index of 9. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CUSTOM160Triggers the widget of the payload device in the index of 10. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CUSTOM161Triggers the widget of the payload device in the index of 11. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CUSTOM162Triggers the widget of the payload device in the index of 12. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CUSTOM163Triggers the widget of the payload device in the index of 13. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      CUSTOM164Triggers the widget of the payload device in the index of 14. It is supported by the firmware of Matrice 200 series v2. For the other products, the action has to be implemented by the application itself.
      Class Members:
      RC Customizable Button
      enum
      enum CustomizableButton
      enum CustomizableButton
      Package:dji.common.remotecontroller
      SDK Key:RemoteControllerKey.FETCH_CUSTOMIZED_ACTION_OF_BUTTON
      Description:

      The customizable buttons.

      Enum Members:
      C1The button with C1 label.
      C2The button with C2 label.
      C3The button with C3 label.
      C4The button with C4 label.
      BAThe button with BA label.
      BBThe button with BB label.
      BCThe button with BC label.
      BDThe button with BD label.
      BEThe button with BE label.
      BFThe button with BF label.
      BGThe button with BG label.
      BHThe button with BH label.
      TDThe button with TD label.
      MenuThe button with MENU label.
      LSThe button with LS label.
      RSThe button with RS label.
      LWThe button with LW label.
      RWThe button with RW label.
      UNKNOWNUnknown.
      Class Members:
      RC Pairing Device
      enum
      enum PairingDevice
      enum PairingDevice
      Package:dji.common.remotecontroller
      Description:

      Types of the device that the remote controller can pair with. It is only used when the remote controller supports multi-device pairing. Only Supported by Phantom 4 RTK.

      Enum Members:
      AIRCRAFTThe device to be paired with is an aircraft.
      RTK_BASE_STATIONThe device to be paired with is an RTK base station.
      UNKONWNUnknown.
      Class Members:
      Multi Device State
      enum
      enum MultiDeviceState
      enum MultiDeviceState
      Package:dji.common.remotecontroller
      Description:

      The state (e.g. unpaired, paired, connected, etc.) of a device that may connected to the remote controller. It is only used when the remote controller supports multi-device pairing. Only supported by DJI Phantom 4 RTK.

      Enum Members:
      UNPAIREDThe remote controller is unpaired with the device. This state is for both aircraft and base station.
      PAIRINGThe remote controller is pairing with the device. This state is only for aircraft.
      PAIREDThe remote controller is paired. This state is only for aircraft.
      DISCONNECTEDThe remote controller is paired with the device but the connection between the device and the remote controller is broken. The remote controller already remembers the device and the connection will receover automatically when it is possible. This state is only for base station. Only Supported by Phantom 4 RTK.
      CONNECTEDThe remote controller is paired with the device and it is connected to the device. This state is only for base station.
      UNKNOWNUnknown.
      Class Members:
      soft Switch JoyStick Mode
      enum
      enum SoftSwitchJoyStickMode
      enum SoftSwitchJoyStickMode
      Package:dji.common.remotecontroller
      Description:

      Joy stick mode on the remote controller. It is only used when the remote controller doesn't have a mode switch. Only Supported by Mavic Mini, DJI Mini SE.

      Enum Members:
      SPORTSet the joy stick to sport mode. Only Supported by Mavic Mini, DJI Mini SE.
      POSITIONSet the joy stick to position mode. Only Supported by Mavic Mini, DJI Mini SE.
      TRIPODSet the joy stick to tripod mode. Only Supported by Mavic Mini, DJI Mini SE.
      UNKNOWNUnknown.
      Class Members:
      method setSoftSwitchJoyStickMode
      void setSoftSwitchJoyStickMode(SoftSwitchJoyStickMode mode, CommonCallbacks.CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets the joy stick mode on the remote controller. It is only used when the remote controller doesn't have a mode switch. Only Supported by Mavic Mini, DJI Mini SE.

      method getSoftSwitchJoyStickMode
      void getSoftSwitchJoyStickMode(CommonCallbacks.CompletionCallbackWith<SoftSwitchJoyStickMode> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets the joy stick mode on the remote controller. It is only used when the remote controller doesn't have a mode switch. Only Supported by Mavic Mini, DJI Mini SE.

      Display Name
      final DisplayNameMavicPro
      static final String DisplayNameMavicPro = DJIRCAbstraction.DisplayNameMavicPro
      Package:dji.sdk.remotecontroller
      Description:

      The display name of Mavic Pro's remote controller.

      final DisplayNameInspire1
      static final String DisplayNameInspire1 = DJIRCAbstraction.DisplayNameInspire1
      Package:dji.sdk.remotecontroller
      Description:

      The display name of the remote controller for Inspire 1 series and Matrice 100.

      final DisplayNameLightbridge2
      static final String DisplayNameLightbridge2 = DJIRCAbstraction.DisplayNameLightbridge2
      Package:dji.sdk.remotecontroller
      Description:

      The display name of the remote controller for Lightbridge 2 wireless module. The module is used by stand-alone Lightbridge 2, A3, N3 and Matrice 600 series.

      final DisplayNameInspire2
      static final String DisplayNameInspire2 = DJIRCAbstraction.DisplayNameInspire2
      Package:dji.sdk.remotecontroller
      Description:

      The display name of the remote controller for Inspire 2 and Matrice 200 series.

      final DisplayNameCendence
      static final String DisplayNameCendence = DJIRCAbstraction.DisplayNameCendence
      Package:dji.sdk.remotecontroller
      Description:

      The display name of the Cendence remote controller.

      final DisplayNameCendenceSDR
      static final String DisplayNameCendenceSDR = DJIRCAbstraction.DisplayNameCendenceSDR
      Package:dji.sdk.remotecontroller
      Description:

      The display name of the Cendence SDR remote controller.

      final DisplayNamePhantom3Professinal
      static final String DisplayNamePhantom3Professinal = DJIRCAbstraction.DisplayNamePhantom3Professinal
      Package:dji.sdk.remotecontroller
      Description:

      The display name of the remote controller for Phantom 3 Professional, Phantom 3 Advanced and Phantom 4.

      final DisplayNamePhantom3Standard
      static final String DisplayNamePhantom3Standard = DJIRCAbstraction.DisplayNamePhantom3Standard
      Package:dji.sdk.remotecontroller
      Description:

      The display name of Phantom 3 Standard's remote controller.

      final DisplayNamePhantom4Pro
      static final String DisplayNamePhantom4Pro = DJIRCAbstraction.DisplayNamePhantom4Pro
      Package:dji.sdk.remotecontroller
      Description:

      The display name of Phantom 4 Pro's remote controller.

      final DisplayNamePhantom4Advanced
      static final String DisplayNamePhantom4Advanced = DJIRCAbstraction.DisplayNamePhantom4Advanced
      Package:dji.sdk.remotecontroller
      Description:

      The display name of Phantom 4 Advanced's remote controller.

      final DisplayNamePhantom4ProV2
      static final String DisplayNamePhantom4ProV2 = DJIRCAbstraction.DisplayNamePhantom4ProV2
      Package:dji.sdk.remotecontroller
      Description:

      The display name of the remote controller for Phantom 4 Pro V2.

      final DisplayNameSpark
      static final String DisplayNameSpark = DJIRCAbstraction.DisplayNameSpark
      Package:dji.sdk.remotecontroller
      Description:

      The display name of Spark's remote controller.

      final DisplayNameMavicAir
      static final String DisplayNameMavicAir = DJIRCAbstraction.DisplayNameMavicAir
      Package:dji.sdk.remotecontroller
      Description:

      The display name of Mavic Air's remote controller.

      final DisplayNameMavic2
      static final String DisplayNameMavic2 = DJIRCAbstraction.DisplayNameMavic2
      Package:dji.sdk.remotecontroller
      Description:

      The display name of Mavic 2's remote controller.

      final DisplayNameMavic2Enterprise
      static final String DisplayNameMavic2Enterprise = DJIRCAbstraction.DisplayNameMavic2Enterprise
      Package:dji.sdk.remotecontroller
      Description:

      The display name of Mavic 2 Enterprise's remote controller.

      final DisplayNameDJISmartController
      static final String DisplayNameDJISmartController = DJIRCAbstraction.DisplayNameDJISmartController
      Package:dji.sdk.remotecontroller
      Description:

      The display name of DJI Smart Controller.

      final DisplayNameDJISmartControllerEnterpriseController
      static final String DisplayNameDJISmartControllerEnterpriseController = DJIRCAbstraction.DisplayNamePM430Controller
      Package:dji.sdk.remotecontroller
      Description:

      The display name of DJI Smart Controller Enterprise.

      final DisplayNameMavicMini
      static final String DisplayNameMavicMini = DJIRCAbstraction.DisplayNameWM160
      Package:dji.sdk.remotecontroller
      Description:

      The display name of Mavic Mini/DJI Mini SE's remote controller.

      final DisplayNameMavicAir2
      static final String DisplayNameMavicAir2 = DJIRCAbstraction.DisplayNameWM231
      Package:dji.sdk.remotecontroller
      Description:

      The display name of Mavic Air 2's remote controller.

      final DisplayNameDJIMini2
      static final String DisplayNameDJIMini2 = DJIRCAbstraction.DisplayNameWM161
      Package:dji.sdk.remotecontroller
      Description:

      The display name of DJI Mini 2's remote controller.

      final DisplayNameDJIAir2s
      static final String DisplayNameDJIAir2s = DJIRCAbstraction.DisplayNameWM232
      Package:dji.sdk.remotecontroller
      Description:

      The display name of DJI Air 2S's remote controller.

      Aggregation State
      class


      State Updates

      method setHardwareStateCallback
      void setHardwareStateCallback(@Nullable HardwareState.HardwareStateCallback hardwareStateCallback)
      Package:dji.sdk.remotecontroller
      Description:

      Set the HardwareStateUpdateCallback

      Input Parameters:
      @Nullable HardwareState.HardwareStateCallback hardwareStateCallbackRCHardwareState.HardwareStateCallback callback.
      method setChargeRemainingCallback
      void setChargeRemainingCallback(@Nullable BatteryState.Callback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets the BatteryStateUpdateCallback.

      Input Parameters:
      @Nullable BatteryState.Callback callbackChargeRemaining.BatteryStateCallback callback.
      method setGPSDataCallback
      void setGPSDataCallback(@Nullable GPSData.Callback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Set the GPSDataUpdateCallback.

      Input Parameters:
      @Nullable GPSData.Callback callbackGPSDataCallback callback.
      method setProRCEventCallback
      void setProRCEventCallback(@Nullable ProfessionalRC.Callback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Set the ProRCEventCallback.

      Input Parameters:
      @Nullable ProfessionalRC.Callback callbackProfessionalRC callback.
      method setMasterSlaveStateCallback
      void setMasterSlaveStateCallback(@Nullable MasterSlaveState.Callback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Callback that updates the remote controller's state related to the master and slave mode. Only supported by Inspire 2.

      Input Parameters:
      @Nullable MasterSlaveState.Callback callbackRCMasterSlaveStateUpdateCallback callback.
      method setGimbalControlRequestFromSlaveCallback
      void setGimbalControlRequestFromSlaveCallback(@Nullable Information.ControlRequestCallback controlRequestCallback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets GimbalControlRequestFromSlaveReceivedCallback.

      Input Parameters:
      @Nullable Information.ControlRequestCallback controlRequestCallbackInformation.ControlRequestCallback callback.
      method setFocusControllerStateCallback
      void setFocusControllerStateCallback(@Nullable FocusControllerState.FocusControllerStateCallback focusStateUpdateCallback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets RCRemoteFocusStateUpdateCallback.

      Input Parameters:
      @Nullable FocusControllerState.FocusControllerStateCallback focusStateUpdateCallbackFocusControllerState.FocusControllerStateCallback callback.
      method addRTKChannelEnabledUpdatedCallback
      void addRTKChannelEnabledUpdatedCallback(@NonNull RTKChannelEnabledUpdatedCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Add the RTKChannelEnabledUpdatedCallback.

      Input Parameters:
      @NonNull RTKChannelEnabledUpdatedCallback callbackRTKChannelEnabledUpdatedCallback callback.
      method addMultiDevicesPairingStateCallback
      void addMultiDevicesPairingStateCallback(@Nullable MultiDeviceAggregationState.Callback multiDeviceAggregationStateCallback)
      Package:dji.sdk.remotecontroller
      Description:

      Adds Callback.

      Input Parameters:
      @Nullable MultiDeviceAggregationState.Callback multiDeviceAggregationStateCallbackMultiDeviceAggregationState callback.
      method removeRTKChannelEnabledUpdatedCallback
      void removeRTKChannelEnabledUpdatedCallback(@NonNull RTKChannelEnabledUpdatedCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Remove the RTKChannelEnabledUpdatedCallback callback.

      Input Parameters:
      @NonNull RTKChannelEnabledUpdatedCallback callbackRTKChannelEnabledUpdatedCallback callback.
      method removeMultiDevicesPairingStateCallback
      void removeMultiDevicesPairingStateCallback(@Nullable MultiDeviceAggregationState.Callback multiDeviceAggregationStateCallback)
      Package:dji.sdk.remotecontroller
      Description:

      Removes Callback.

      Input Parameters:
      @Nullable MultiDeviceAggregationState.Callback multiDeviceAggregationStateCallbackMultiDeviceAggregationState callback.


      Aircraft Pairing

      Enter Pairing Mode
      method
      method startPairing
      void startPairing(@Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.START_PAIRING
      Description:

      Enters pairing mode, in which the Remote Controller starts pairing with the aircraft. This method is used when the Remote Controller no longer recognizes which aircraft it is paired with.

      Input Parameters:
      @Nullable CompletionCallback callbackThe execution callback with the execution result returned. See BaseComponent for more information about the callback and what is recommended be done with it.
      Exit Pairing Mode
      method
      method stopPairing
      void stopPairing(@Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.STOP_PAIRING
      Description:

      Exits pairing mode.

      Input Parameters:
      @Nullable CompletionCallback callbackThe execution callback with the execution result returned. See BaseComponent for more information about the callback and what is recommended be done with it.
      Pairing State
      method
      method getPairingState
      void getPairingState(@NonNull CompletionCallbackWith<PairingState> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.PAIRING_STATE
      Description:

      Gets the pairing status as the Remote Controller is pairing with the aircraft.

      Input Parameters:
      @NonNull CompletionCallbackWith<PairingState> callbackThe execution callback with the value(s) returned.


      Multi Device Pairing

      Pairing Supported
      method
      method isMultiDevicePairingSupported
      boolean isMultiDevicePairingSupported()
      Package:dji.sdk.remotecontroller
      Description:

      Determines if multi-device pairing supported by the remote controller. When the remote controller supports multi-device pairing, it can be paired to more than one device (e.g. aircraft, RTK base station) at the same time. When this feature is supported, use startMultiDevicePairing and stopMultiDevicePairing to start and stop pairing instead of using the following methods:
      - startPairing
      - stopPairing
      - getPairingState. This feature is only supported by Phantom 4 RTK.

      Return:
      booleantrue if multi-device pairing is supported.
      Start Pairing
      method
      method startMultiDevicePairing
      void startMultiDevicePairing(PairingDevice target, @Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Starts pairing a target with the specific type (aircraft or RTK base station). This paring method is for Phantom 4 RTK only. To use RTK feature with a base station, the Phantom 4 RTK remote controller need to pair both the base station and the aircraft at the same time.
      CAUTION: pairing an RTK base station will unpair the paired aircraft. Therefore, to use the base station properly, the user needs to pair the base station first, and the aircraft after. It is only supported when isMultiDevicePairingSupported returns true.

      Input Parameters:
      PairingDevice targetThe device target to start multi-device pairing.
      @Nullable CompletionCallback callbackCompletion block.
      Stop Pairing
      method
      method stopMultiDevicePairing
      void stopMultiDevicePairing(@Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Stops the multi-device pairing. It is used after the pairing is started and before the remote controller is paired to a device successfully. It is not necessary to call this method if the remote controller is paired to a device successfully. Only Supported by Phantom 4 RTK.

      Input Parameters:
      @Nullable CompletionCallback callbackCompletion block.


      RTK Channel

      Set Enabled
      method
      method setRTKChannelEnabled
      void setRTKChannelEnabled(boolean enabled, @Nullable final CommonCallbacks.CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Enables the RTK channel on the remote controller. When RTK air system is using the base station as the reference station, the remote controller should enable the RTK channel and reserve some bandwidth for data transmission between the base station and the air system.
      CAUTION: toggling RTK channel will reset the airlink between the remote controller and the aircraft. The airlink may take 3 seconds to recover. DO NOT enable/disable the channel when the aircraft is flying. If the base station is reconnected, you need to call this interface to enabled the RTK channel again. Only Supported by Phantom 4 RTK.

      Input Parameters:
      boolean enabledtrue to enable the RTK channel on the remote controller.
      @Nullable final CommonCallbacks.CompletionCallback callbackCompletion block.


      Customize RC

      Flight Control Stick Mapping
      method
      method setCustomAircraftMapping
      void setCustomAircraftMapping(@NonNull AircraftMapping mapping, @Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.AIRCRAFT_CUSTOM_MAPPING
      Description:

      Set the mapping of custom style. It will change the current mapping style to STYLE_CUSTOM. The setting will only take effect when the remote controller is in master mode.

      Input Parameters:
      @NonNull AircraftMapping mappingThe remote controller aircraft mapping.
      @Nullable CompletionCallback callbackThe execution callback with the value(s) returned.
      method getCustomAircraftMapping
      void getCustomAircraftMapping(@NonNull CompletionCallbackWith<AircraftMapping> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.AIRCRAFT_CUSTOM_MAPPING
      Description:

      Retrieves the stick mapping associated with the custom style.

      Input Parameters:
      @NonNull CompletionCallbackWith<AircraftMapping> callbackThe execution callback with the value(s) returned.
      method setAircraftMappingStyle
      void setAircraftMappingStyle(@NonNull AircraftMappingStyle style, @Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.AIRCRAFT_MAPPING_STYLE
      Description:

      Sets the Remote Controller's control mode.

      Input Parameters:
      @NonNull AircraftMappingStyle styleRemote controller control mode to be set.
      @Nullable CompletionCallback callbackThe execution callback with the execution result returned.
      method getAircraftMappingStyle
      void getAircraftMappingStyle(@NonNull CompletionCallbackWith<AircraftMappingStyle> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.AIRCRAFT_MAPPING_STYLE
      Description:

      Gets the Remote Controller's control mode.

      Input Parameters:
      @NonNull CompletionCallbackWith<AircraftMappingStyle> callbackThe execution callback with the execution result returned.
      method setLeftDialGimbalControlAxis
      void setLeftDialGimbalControlAxis(@NonNull GimbalAxis axis,
      @Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:LEFT_WHEEL_GIMBAL_CONTROL_AXIS
      Description:

      Sets which of the gimbal directions the top left dial (Gimbal Dial) on the Remote Controller will control. The three options (pitch, roll, and yaw) are outlined in the enum named GimbalAxis.

      Input Parameters:
      @NonNull GimbalAxis axisGimbal direction to be set that the top left dial on the Remote Controller will control.
      @Nullable CompletionCallback callbackRemote execution result error callback. See BaseComponent for more information about the callback and what is recommended be done with it.
      method getLeftDialGimbalControlAxis
      void getLeftDialGimbalControlAxis(@NonNull CompletionCallbackWith<GimbalAxis> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:LEFT_WHEEL_GIMBAL_CONTROL_AXIS
      Description:

      Gets which of the gimbal directions the top left wheel (Gimbal Dial) on the Remote Controller will control.

      Input Parameters:
      @NonNull CompletionCallbackWith<GimbalAxis> callbackThe execution callback with the value(s) returned.
      method setLeftDialGimbalControlSpeedCoefficient
      void setLeftDialGimbalControlSpeedCoefficient(int coefficient,
      @Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets gimbal rotation speed of the top left wheel (Gimbal Dial) on the Remote Controller. The valid range is [0, 100].

      Input Parameters:
      int coefficientGimbal control speed coefficient to be set. Setting it to zero can disable the gimbal control by the top left wheel.
      @Nullable CompletionCallback callbackThe execution callback with the execution result returned.
      method getLeftDialGimbalControlSpeedCoefficient
      void getLeftDialGimbalControlSpeedCoefficient(@NonNull CompletionCallbackWith<Integer> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets gimbal rotation speed of the top left wheel (Gimbal Dial) on the Remote Controller. The valid range is [0, 100].

      Input Parameters:
      @NonNull CompletionCallbackWith<Integer> callbackThe execution callback with the execution result returned.
      Custom Buttons
      method
      method setCustomButtonTags
      void setCustomButtonTags(@NonNull CustomButtonTags tags, @Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.CUSTOM_BUTTON_TAGS
      Description:

      Sets custom button tags, which can be used by the user to record user settings. Moreover, this method will make it easier for developers to set custom tags for buttons in the user interface, will make it easier to use the C1 and C2 buttons on the Remote Controller.

      Input Parameters:
      @NonNull CustomButtonTags tagsBack buttons' custom tags, the value should in the range of [0, 255].
      @Nullable CompletionCallback callbackRemote execution result error callback.
      method getCustomButtonTags
      void getCustomButtonTags(@NonNull CompletionCallbackWith<CustomButtonTags> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.CUSTOM_BUTTON_TAGS
      Description:

      Gets the custom button's (Back Button's) tags.

      Input Parameters:
      @NonNull CompletionCallbackWith<CustomButtonTags> callbackThe execution callback with the value(s) returned.
      Shutter Button
      method
      method setShutterButtonBindingEnabled
      void setShutterButtonBindingEnabled(boolean enabled, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Enables invoking shooting photo interface when the shutter button is pressed. Mavic 2 series remote controller's shutter button will not work physically when connecting to Mobile SDK. This setting will be stored in software application localized storage paired with the RC SN key, which means, if the application is killed, it will be set to enabled by default when the application is relaunched. It is only supported by Mavic 2 series.

      Input Parameters:
      boolean enabledtrue to enable invoking shooting photo interface when the shutter button is pressed.
      final CompletionCallback callbackThe execution callback with the value(s) returned.
      method getShutterButtonBindingEnabled
      void getShutterButtonBindingEnabled(final CompletionCallbackWith<Boolean> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets if shooting photo interface is involved when the shutter button is pressed. It is only supported by Mavic 2 series.

      Input Parameters:
      final CompletionCallbackWith<Boolean> callbackThe execution callback with the value(s) returned.
      method setRecordButtonBindingEnabled
      void setRecordButtonBindingEnabled(boolean enabled, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Enables invoking video record interface when the record button is pressed. Mavic 2 series remote controller's record button will not work physically when connecting to Mobile SDK. This setting will be stored in software application localized storage paired with the RC SN key. Only supported by Mavic 2 series.

      Input Parameters:
      boolean enabledtrue to enable invoking video record interface when the record button is pressed.
      final CompletionCallback callbackThe execution callback with the value(s) returned.
      method getRecordButtonBindingEnabled
      void getRecordButtonBindingEnabled(final CompletionCallbackWith<Boolean> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets if video record interface is involved when the record button is pressed. It is only supported by Mavic 2 series.

      Input Parameters:
      final CompletionCallbackWith<Boolean> callbackThe execution callback with the value(s) returned.
      Photo and Video Toggle Button
      method
      method setPhotoAndVideoToggleButtonBindingEnabled
      void setPhotoAndVideoToggleButtonBindingEnabled(boolean enabled, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      true to switch camera flat mode between photo and video when the getPhotoAndVideoToggleButton button is pressed. false when getPhotoAndVideoToggleButton button is pressed, we will not bind any event. You can monitor the button and handle custom events by yourself. This setting will be stored in software application localized storage paired with the RC SN key, which means. Only supported by Mavic Air 2, DJI Air 2S.

      Input Parameters:
      boolean enabledtrue to switch camera flat mode between photo and video when the getPhotoAndVideoToggleButton button is pressed.
      final CompletionCallback callbackThe execution callback with the value(s) returned.
      method getPhotoAndVideoToggleButtonBindingEnabled
      void getPhotoAndVideoToggleButtonBindingEnabled(final CompletionCallbackWith<Boolean> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets whether switching camera flat mode between photo and video is enabled when the getPhotoAndVideoToggleButton button is pressed. It is only supported by Mavic Air 2.

      Input Parameters:
      final CompletionCallbackWith<Boolean> callbackThe execution callback with the value(s) returned.
      Shoot Photo And Record Button
      method
      method setShootPhotoAndRecordButtonBindingEnabled
      void setShootPhotoAndRecordButtonBindingEnabled(boolean enabled, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      true to enable invoking shoot photo or record interface when the record button is pressed depend on the getPhotoAndVideoToggleButton button state. false when getPhotoAndVideoToggleButton button is pressed, we will not bind any event. You can monitor the button and handle custom events by yourself. This setting will be stored in software application localized storage paired with the RC SN key. Only supported by Mavic AIr 2, DJI Air 2S.

      Input Parameters:
      boolean enabledtrue to enable invoking shoot photo or record interface when the record button is pressed depend on the getPhotoAndVideoToggleButton button state.
      final CompletionCallback callbackThe execution callback with the value(s) returned.
      method getShootPhotoAndRecordButtonBindingEnabled
      void getShootPhotoAndRecordButtonBindingEnabled(final CompletionCallbackWith<Boolean> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets if shoot photo or video record interface is involved when the getPhotoAndVideoToggleButton button is pressed. It is only supported by Mavic Air 2, DJI Air 2S.

      Input Parameters:
      final CompletionCallbackWith<Boolean> callbackThe execution callback with the value(s) returned.


      Mobile Device Charging

      Charge Mobile Mode
      method
      method setChargeMobileMode
      void setChargeMobileMode(@NonNull ChargeMobileMode mode, @Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets the charge mode of a connected iOS device. Note: Android devices are always charging when connected to the remote controller. It is only supported by Inspire 2, M200 series, Cendence and Mavic 2 series.

      Input Parameters:
      @NonNull ChargeMobileMode modeCharge Mobile mode.
      @Nullable CompletionCallback callbackThe execution callback with the execution result returned.
      method getChargeMobileMode
      void getChargeMobileMode(@NonNull CompletionCallbackWith<ChargeMobileMode> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.CHARGE_MOBILE_MODE
      Description:

      Gets the mode to charge the connected iOS device. Note that Android devices are always charging when connected to the remote controller. It is only supported by Inspire 2, M200 series, Cendence, and Mavic 2 series.

      Input Parameters:
      @NonNull CompletionCallbackWith<ChargeMobileMode> callbackThe execution callback with the value(s) returned.


      Master/Slave RC

      method isMasterSlaveModeSupported
      boolean isMasterSlaveModeSupported()
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.IS_MASTER_SLAVE_MODE_SUPPORTED
      Description:

      Query method to check if the Remote Controller supports master/slave mode. Master-slave mode is supported by the Inspire 1, Inspire 1 Pro, Matrice 100, Lightbridge 2 (including Matrice 600, Matrice 600 Pro, A3 and N3) and Inspire 2. Inspire 2 is using a new set of interfaces to control the master and slave connection.
      - Similar to other products, Inspire 2's remote controller also use set/get RCMode to change the mode.
      - A slave remote controller can use getMasters and connectToMaster to join a master remote controller.
      - A master remote controller can use setMasterAuthorizationCode to change the authentication code.

      Return:
      booleanA boolean value.
      Mode Selection
      method
      method setMode
      void setMode(@NonNull RCMode mode, @Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.MODE
      Description:

      Sets the Remote Controller's mode. See the RCMode enum for all possible Remote Controller modes. The master and slave modes are only supported for the Inspire 1, Inspire 1 Pro, M100, Lightbridge 2 (including Matrice 600, Matrice 600 Pro, A3 and N3) and Inspire 2. It's not supported by Matrice 300 RTK.

      Input Parameters:
      @NonNull RCMode modeMode of type RCMode to be set for the Remote Controller.
      @Nullable CompletionCallback callbackThe execution callback with the returned execution result.
      method
      method getMode
      void getMode(@NonNull CompletionCallbackWith<RCMode> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.MODE
      Description:

      Gets the Remote Controller's work mode. It is supported by the Inspire 1, Inspire 1 Pro, Matrice 100, Lightbridge 2 (including Matrice 600, Matrice 600 Pro, A3 and N3) and Inspire 2.

      Input Parameters:
      @NonNull CompletionCallbackWith<RCMode> callbackThe execution callback with the value(s) returned.
      Identifier
      method
      method setName
      void setName(@NonNull String name, @Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.NAME
      Description:

      Sets the Remote Controller's name.

      Input Parameters:
      @NonNull String nameRemote controller name to be set. Six characters at most.
      @Nullable CompletionCallback callbackThe execution callback with the execution result returned.
      method
      method getName
      void getName(@NonNull CompletionCallbackWith<String> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.NAME
      Description:

      Gets the Remote Controller's name.

      Input Parameters:
      @NonNull CompletionCallbackWith<String> callbackThe execution callback with the value(s) returned.
      method setPassword
      void setPassword(@NonNull String password, @Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.PASSWORD
      Description:

      Sets the Remote Controller's password.

      Input Parameters:
      @NonNull String passwordRemote controller password to be set, using a string consisted by 4 digits.
      @Nullable CompletionCallback callbackThe execution callback with the value(s) returned. See BaseComponent for more information about the callback and what is recommended to be done with it.
      method getPassword
      void getPassword(@NonNull CompletionCallbackWith<String> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.PASSWORD
      Description:

      Gets the Remote Controller's password.

      Input Parameters:
      @NonNull CompletionCallbackWith<String> callbackThe execution callback with the value(s) returned.
      Connection - Master
      method
      method getSlaveList
      void getSlaveList(@NonNull CompletionCallbackWith<Information[]> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.SLAVE_LIST
      Description:

      Used by the current master Remote Controller to get all the slaves connected to it.

      Input Parameters:
      @NonNull CompletionCallbackWith<Information[]> callbackThe execution callback with the returned value(s).
      Connection - Slave
      method
      method startMasterSearching
      void startMasterSearching(@NonNull MasterSearchingCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.START_SEARCH_MASTER
      Description:

      Starts a search by slave Remote Controller for nearby master Remote Controllers. To get the list of master Remote Controllers, first call getAvailableMasters, then call stopMasterSearching to end the search.

      Input Parameters:
      @NonNull MasterSearchingCallback callbackRemote execution result error callback. Please refer to BaseComponent for more information about the callback and what is recommended be done with it.
      method stopMasterSearching
      void stopMasterSearching(@Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.STOP_MASTER_SEARCHING
      Description:

      Used by a slave Remote Controller to stop the search for nearby master Remote Controllers.

      Input Parameters:
      @Nullable CompletionCallback callbackRemote execution result error callback. Please refer to BaseComponent for more information about the callback and what is recommended be done with it.
      method getAvailableMasters
      void getAvailableMasters(@NonNull CompletionCallbackWith<Information[]> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.AVAILABLE_MASTERS
      Description:

      Starts search by slave Remote Controller for nearby master Remote Controllers. To get the list of master Remote Controllers use getAvailableMastersWithCallbackBlock then call stopMasterRCSearch to end th search.

      Input Parameters:
      @NonNull CompletionCallbackWith<Information[]> callbackThe execution callback with the value(s) returned. The array of masters contains objects of type Information.
      method getMasterSearchingState
      void getMasterSearchingState(@NonNull CompletionCallbackWith<Boolean> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.MASTER_SEARCHING_STATE
      Description:

      Returns the state of the master Remote Controller search. The search is initiated by the Mobile Device, but performed by the Remote Controller. Therefore, if the Mobile Device's application crashes while a search is ongoing, this method can be used to let the new instance of the application understand the Remote Controller state.

      Input Parameters:
      @NonNull CompletionCallbackWith<Boolean> callbackThe execution callback with the value(s) returned.
      method connectToMaster
      void connectToMaster(@NonNull Credentials credentials,
      @Nullable
      CompletionCallbackWith<ConnectToMasterResult> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.CONNECT_TO_MASTER
      Description:

      Used by a slave Remote Controller to request to join a master Remote Controller and be able to control the gimbal. If the master Remote Controller accepts the request, the master Remote Controller will control the aircraft and the slave Remote Controller will control the gimbal.

      Input Parameters:
      @NonNull Credentials credentialsInclude master's name and master's password.
      @Nullable CompletionCallbackWith<ConnectToMasterResult> callbackThe execution callback with the value(s) returned.
      method getConnectedMasterCredentials
      void getConnectedMasterCredentials(@NonNull CompletionCallbackWith<Credentials> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.CONNECTED_MASTER_CREDENTIALS
      Description:

      Returns the master Remote Controller's information, which includes the unique identifier, name, and password.

      Input Parameters:
      @NonNull CompletionCallbackWith<Credentials> callbackThe execution callback with the value(s) returned.
      Inspire 2 Connection - Master
      method
      method setMasterAuthorizationCode
      void setMasterAuthorizationCode(@NonNull String authorizationCode, @Nullable
      CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.SET_MASTER_AUTH_CODE
      Description:

      Sets the authorization code of a master remote controller. The slave remote controller needs to know the authorization code in order to join the master. A valid input is a string with 6 digits. The default value is "888888". It can only be called when the remote controller is in master mode.

      Input Parameters:
      @NonNull String authorizationCodeAuthorization code to set.
      @Nullable CompletionCallback callbackThe execution callback with the value(s) returned.
      Inspire 2 Connection - Slave
      method
      method getMasters
      void getMasters(@NonNull CompletionCallbackWith<String[]> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.MASTER_LIST
      Description:

      Gets a list of the nearby remote controllers in master mode. It can only be called when the remote controller is in slave mode.

      Input Parameters:
      @NonNull CompletionCallbackWith<String[]> callbackThe execution callback with the returned value(s).
      method connectToMaster
      void connectToMaster(@NonNull AuthorizationInfo info, @Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.CONNECT_TO_MASTER_WITH_ID
      Description:

      Joins the master remote controller with the specific ID. If the remote controller has joined the same master before, the authorization code is not required until the master remote controller changes its authorization code. In this case, code can be null. It can only be called when the remote controller is in slave mode.

      Input Parameters:
      @NonNull AuthorizationInfo infoJoinMasterData object.
      @Nullable CompletionCallback callbackThe execution callback with the returned value(s).
      Request Gimbal Control
      method
      method requestGimbalControl
      void requestGimbalControl(@Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Requests the gimbal control from the other remote controller. Different from requestLegacyGimbalControl, the gimbal control permission is transferred to the remote controller without the reply from the master remote controller. The master remote controller can attain the gimbal control back by calling the same method. It is only supported by Inspire 2, M200 series and Cendence.

      Input Parameters:
      @Nullable CompletionCallback callbackThe execution callback with the value(s) returned.
      Gimbal Control - Master
      method
      method respondToRequestForGimbalControl
      void respondToRequestForGimbalControl(ResponseForGimbalControl response)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.RESPONSE_TO_REQUEST_FOR_GIMBAL_CONTROL
      Description:

      When a slave Remote Controller requests a master Remote Controller to control the gimbal, this method is used by a master Remote Controller to respond to the slave Remote Controller's request.

      Input Parameters:
      ResponseForGimbalControl responseThe response object of ResponseForGimbalControl to the slave Remote Controller.
      Gimbal Control - Slave
      method
      method requestLegacyGimbalControl
      void requestLegacyGimbalControl(@NonNull CompletionCallbackWith<RequestGimbalControlResult> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Called by the slave Remote Controller to request gimbal control from the master Remote Controller. It is only supported by Inspire 1 and DJI Lightbridge 2.

      Input Parameters:
      @NonNull CompletionCallbackWith<RequestGimbalControlResult> callbackThe execution callback with the value(s) returned.
      method setGimbalMappingStyle
      void setGimbalMappingStyle(@NonNull GimbalMappingStyle style, @Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.GIMBAL_MAPPING_STYLE
      Description:

      Sets the Remote Controller's slave control mode.

      Input Parameters:
      @NonNull GimbalMappingStyle styleControl mode to be set.
      @Nullable CompletionCallback callbackRemote execution result error callback.
      method getGimbalMappingStyle
      void getGimbalMappingStyle(@NonNull CompletionCallbackWith<GimbalMappingStyle> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.GIMBAL_MAPPING_STYLE
      Description:

      Gets the Remote Controller's slave control mode.

      Input Parameters:
      @NonNull CompletionCallbackWith<GimbalMappingStyle> callbackThe execution callback with the value(s) returned.
      method setGimbalControlSpeedCoefficient
      void setGimbalControlSpeedCoefficient(@NonNull GimbalControlSpeedCoefficient speedCoefficient,
      @Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.GIMBAL_CONTROL_SPEED_COEFFICIENT
      Description:

      Called by the slave Remote Controller to set the gimbal's pitch, roll, and yaw speed with a range of [0, 100].

      Input Parameters:
      @NonNull GimbalControlSpeedCoefficient speedCoefficientSpeed to be set for gimbal's pitch, roll, and yaw, which should be in the range of [0, 100].
      @Nullable CompletionCallback callbackRemote execution result error callback. See BaseComponent for more information about the callback and what is recommended be done with it.
      method getGimbalControlSpeedCoefficient
      void getGimbalControlSpeedCoefficient(@NonNull CompletionCallbackWith<GimbalControlSpeedCoefficient> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.GIMBAL_CONTROL_SPEED_COEFFICIENT
      Description:

      Gets the current slave's gimbal's pitch, roll, and yaw speed with a range of [0, 100].

      Input Parameters:
      @NonNull CompletionCallbackWith<GimbalControlSpeedCoefficient> callbackThe execution callback with the value(s) returned.
      Custom Gimbal Mapping
      method
      method setCustomGimbalMapping
      void setCustomGimbalMapping(@NonNull GimbalMapping mapping, @Nullable CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.CUSTOM_GIMBAL_MAPPING
      Description:

      Sets the Remote Controller's slave control mode.

      Input Parameters:
      @NonNull GimbalMapping mappingThe DJIRCGimbalMapping object.
      @Nullable CompletionCallback callbackThe execution callback with the value(s) returned.
      method getCustomGimbalMapping
      void getCustomGimbalMapping(@NonNull CompletionCallbackWith<GimbalMapping> callback)
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.CUSTOM_GIMBAL_MAPPING
      Description:

      Gets the Remote Controller's slave control mode.

      Input Parameters:
      @NonNull CompletionCallbackWith<GimbalMapping> callbackThe execution callback with the value(s) returned.


      Cendence Custom Buttons

      method isCustomizableButtonSupported
      boolean isCustomizableButtonSupported()
      Package:dji.sdk.remotecontroller
      Description:

      true if the remote controller supports customizable buttons. With the customizable buttons, the user can define the action bound to a button. When the button is clicked, the corresponding action can be received from the . Only Cendence supports customizable buttons. This is distinct from remote controllers with buttons C1 and C2 that support custom tags and a binding to DJI Go.

      Return:
      booleanTRUE to support customizable button.
      Button Profile Group
      method
      method getButtonProfileGroups
      void getButtonProfileGroups(final CommonCallbacks.CompletionCallbackWith<String[]> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets the names of the customizable button profile groups. The configurations of the customizable buttons are organized as groups. The maximum number of groups is 5 and each group contains 3 profiles. It is only valid when isCustomizableButtonSupported returns true.

      Input Parameters:
      final CommonCallbacks.CompletionCallbackWith<String[]> callbackThe execution callback with the execution result returned.
      method addButtonProfileGroup
      void addButtonProfileGroup(String groupName, @Nullable final CommonCallbacks.CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Adds a group of customizable button profiles. Three default profiles will be created for the newly added group. The default profile can accessed through getButtonActions. It is only valid when isCustomizableButtonSupported returns true.

      Input Parameters:
      String groupNameThe name of the group to be added.
      @Nullable final CommonCallbacks.CompletionCallback callbackThe execution callback with the execution result returned.
      method removeButtonProfileGroup
      void removeButtonProfileGroup(String groupName, @Nullable final CommonCallbacks.CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Removes a group from the customizable button profiles. There must be at least one group, therefore, the removal of the last group will fail. It is only valid when isCustomizableButtonSupported returns true.

      Input Parameters:
      String groupNameThe name of the group to be removed.
      @Nullable final CommonCallbacks.CompletionCallback callbackThe execution callback with the execution result returned.
      method renameButtonProfileGroup
      void renameButtonProfileGroup(String oldProfileName,
      String newProfileName,
      @Nullable final CommonCallbacks.CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Renames a profile group to a new name. It is only valid when isCustomizableButtonSupported returns true.

      Input Parameters:
      String oldProfileNameThe name of the group to be renamed.
      String newProfileNameThe new profile group name.
      @Nullable final CommonCallbacks.CompletionCallback callbackThe execution callback with the execution result returned.
      method selectButtonProfileGroup
      void selectButtonProfileGroup(String groupName, @Nullable final CommonCallbacks.CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Selects the customizable button profile group. The profile with 0 configIndex in the group will be applied. It is only valid when isCustomizableButtonSupported returns true.

      Input Parameters:
      String groupNameThe name of the group to select.
      @Nullable final CommonCallbacks.CompletionCallback callbackThe execution callback with the execution result returned.
      method getSelectedButtonProfileGroup
      void getSelectedButtonProfileGroup(final CommonCallbacks.CompletionCallbackWith<String> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets the name of the selected customizable button profile group. It is only valid when isCustomizableButtonSupported returns true.

      Input Parameters:
      final CommonCallbacks.CompletionCallbackWith<String> callbackThe execution callback with the execution result returned.
      Button Profile
      method
      method selectButtonProfile
      void selectButtonProfile(int profileIndex, @Nullable final CommonCallbacks.CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Selects the customizable button profile with the specific index in the selected profile group. It is only valid when isCustomizableButtonSupported returns true.

      Input Parameters:
      int profileIndexThe index of the profile to select. The valid range is [0, 2].
      @Nullable final CommonCallbacks.CompletionCallback callbackThe execution callback with the execution result returned.
      method getSelectedButtonProfile
      void getSelectedButtonProfile(final CommonCallbacks.CompletionCallbackWith<Integer> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets the index of the selected button profile in the selected group. It is only valid when isCustomizableButtonSupported returns true.

      Input Parameters:
      final CommonCallbacks.CompletionCallbackWith<Integer> callbackThe execution callback with the execution result returned.
      Button Config
      method
      method setButtonConfig
      void setButtonConfig(ProfessionalRC.ButtonConfiguration config, @Nullable final CommonCallbacks.CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Customizes the button configuration. The configuration will be applied to the remote controller immediately and will be stored into the selected profile of the selected profile group. It is only valid when isCustomizableButtonSupported returns true. Supported by the Cendence remote controller.

      Input Parameters:
      ProfessionalRC.ButtonConfiguration configThe configuration to be set.
      @Nullable final CommonCallbacks.CompletionCallback callbackThe execution callback with the execution result returned.
      method getButtonConfig
      void getButtonConfig(final CommonCallbacks.CompletionCallbackWith<ProfessionalRC.ButtonConfiguration> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets the button configuration being applied to the remote controller. It is only valid when isCustomizableButtonSupported returns true. Supported by the Cendence remote controller.

      Input Parameters:
      final CommonCallbacks.CompletionCallbackWith<ProfessionalRC.ButtonConfiguration> callbackThe execution callback with the execution result returned.
      method resetButtonConfig
      void resetButtonConfig(@Nullable final CommonCallbacks.CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Resets the selected button configuration to the default settings. The default configuration will be applied to the remote controller and will be stored into the selected index of the activated user. It is only valid when isCustomizableButtonSupported returns true.

      Input Parameters:
      @Nullable final CommonCallbacks.CompletionCallback callbackThe execution callback with the execution result returned.
      Customize Button
      method
      method customizeButton
      void customizeButton(ProfessionalRC.CustomizableButton button, ProfessionalRC.ButtonAction action, @Nullable final CommonCallbacks.CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Customizes the action of a button. The new setting will be applied to the remote controller and will be stored into the selected profile index of the selected profile group. It is only valid when isCustomizableButtonSupported returns true.

      Input Parameters:
      ProfessionalRC.CustomizableButton buttonThe customizable button.
      ProfessionalRC.ButtonAction actionThe action to be bound to the button.
      @Nullable final CommonCallbacks.CompletionCallback callbackThe execution callback with the execution result returned.
      method fetchCustomizedActionOfButton
      void fetchCustomizedActionOfButton(ProfessionalRC.CustomizableButton button, @Nullable final CommonCallbacks.CompletionCallbackWith<ProfessionalRC.ButtonAction> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Fetches the customized action of a button in the selected configuration. It is only valid when isCustomizableButtonSupported returns true.

      Input Parameters:
      ProfessionalRC.CustomizableButton buttonThe customizable button.
      @Nullable final CommonCallbacks.CompletionCallbackWith<ProfessionalRC.ButtonAction> callbackThe execution callback with the execution result returned.


      RC Commands

      Controlling Gimbal
      method
      method setControllingGimbalIndex
      void setControllingGimbalIndex(int index, @Nullable final CommonCallbacks.CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Directs commands of the physical buttons on the remote controller (rotating gimbal, shoot photo, record video, etc.) to the specific gimbal, when there are multiple gimbals connected. If there is only one gimbal connected, this setting is reset to the remaining gimbal. Enabling setAttitudeSynchronizationEnabled will reset this setting to index 0 and when setAttitudeSynchronizationEnabled is enabled, index can only be set to 0. It is only supported by M210, M210 RTK and Matrice 300 RTK.

      Input Parameters:
      int indexIndex of the gimbal to receive the remote controller commands.
      @Nullable final CommonCallbacks.CompletionCallback callbackThe execution callback with the execution result returned.
      method getControllingGimbalIndex
      void getControllingGimbalIndex(final CommonCallbacks.CompletionCallbackWith<Integer> callback)
      Package:dji.sdk.remotecontroller
      Description:

      The index of the gimbal that the remote controller is controlling. Commands of the physical buttons (rotating gimbal, shoot photo, record video, etc.) will be directed to the specific gimbal. If there is only one gimbal connected, this setting is reset to the remaining gimbal's index. Enabling setAttitudeSynchronizationEnabled will reset the value to 0. For product that supports only one gimbal, the value is always 0.

      Input Parameters:
      final CommonCallbacks.CompletionCallbackWith<Integer> callbackThe execution callback with the execution result returned.


      Secondary Video

      Check Supported
      method
      method isSecondaryVideoOutputSupported
      boolean isSecondaryVideoOutputSupported()
      Package:dji.sdk.remotecontroller
      Description:

      Return whether secondary video output supported. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Return:
      booleanA boolean value.
      method setSecondaryVideoOutputEnabled
      void setSecondaryVideoOutputEnabled(boolean enabled, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Enable secondary video output on Remote Controller. The remote controller outputs video to the Mobile Device by default. This will enable a secondary video stream to one of the Remote Controller's physical HDMI and SDI ports. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      boolean enabledEnables secondary video output.
      final CompletionCallback callbackThe execution callback with the execution result returned.
      method getSecondaryVideoOutputEnabled
      void getSecondaryVideoOutputEnabled(final CompletionCallbackWith<Boolean> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets whether secondary video output on Remote Controller is enabled. The Remote Controller outputs video to the Mobile Device by default, but a secondary video can be routed to its HDMI or SDI port. Use setSecondaryVideoOutputEnabled to enable or disable, and setSecondaryVideoOutputPort to choose the port. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      final CompletionCallbackWith<Boolean> callbackThe execution callback with the value(s) returned.
      Set Output Port
      method
      method setSecondaryVideoOutputPort
      void setSecondaryVideoOutputPort(SecondaryVideoOutputPort port, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets secondary video output port on Remote Controller. HDMI or SDI are possible. Only one port can be active at once. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      SecondaryVideoOutputPort portSecondary video output port.
      final CompletionCallback callbackThe execution callback with the execution result returned.
      Get Output Port
      method
      method getSecondaryVideoOutputPort
      void getSecondaryVideoOutputPort(final CompletionCallbackWith<SecondaryVideoOutputPort> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets the secondary video output port on Remote Controller. HDMI or SDI are possible. Only one port can be active at once. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      final CompletionCallbackWith<SecondaryVideoOutputPort> callbackThe execution callback with the value(s) returned.
      Set Display Mode
      method
      method setSecondaryVideoDisplay
      void setSecondaryVideoDisplay(SecondaryVideoDisplayMode mode, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets the secondary video output Picture in Picture (PIP) display mode. The remote controller module can connect to both an FPV camera (through the HDMI and AV ports) and a camera mounted on the HD Gimbal (through the Gimbal port). The output video can then be a combination of the two video sources. Either a single video source can be displayed, or one can be displayed within the other (as a Picture in Picture, or PIP). If the mode is set incorrectly, then no output video will be displayed. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      SecondaryVideoDisplayMode modePicture in Picture (PIP) display mode.
      final CompletionCallback callbackThe execution callback with the execution result returned.
      Get Display Mode
      method
      method getSecondaryVideoDisplay
      void getSecondaryVideoDisplay(final CompletionCallbackWith<SecondaryVideoDisplayMode> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets the secondary video output Picture in Picture (PIP) display mode. The air link module can connect to both an FPV camera (through the HDMI and AV ports) and a camera mounted on the HD Gimbal (through the Gimbal port). The output video can then be a combination of the two video sources. Either a single video source can be displayed, or one can be displayed within the other (as a Picture in Picture, or PIP). It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      final CompletionCallbackWith<SecondaryVideoDisplayMode> callbackThe execution callback with the value(s) returned.
      Set OSDK Enabled
      method
      method setSecondaryVideoOSDEnabled
      void setSecondaryVideoOSDEnabled(boolean enabled, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Enables and disables On Screen Display (OSD) overlay on the secondary video. OSD is flight data like altitude, attitude etc. And can be overlayed on the PIP video. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      boolean enabledDetermines whether to display OSD on screen.
      final CompletionCallback callbackThe execution callback with the execution result returned.
      Get OSD Enabled
      method
      method getSecondaryVideoOSDEnabled
      void getSecondaryVideoOSDEnabled(final CompletionCallbackWith<Boolean> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Determines whether On Screen Display (OSD) is overlayed on the video feed.

      Input Parameters:
      final CompletionCallbackWith<Boolean> callbackThe execution callback with the value(s) returned.
      Set OSD Top Margin
      method
      method setSecondaryVideoOSDTopMargin
      void setSecondaryVideoOSDTopMargin(int margin, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets the OSD top margin in video pixels. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      int marginTop margin of OSD. The range is [0, 50].
      final CompletionCallback callbackThe execution callback with the execution result returned.
      Get OSD Top Margin
      method
      method getSecondaryVideoOSDTopMargin
      void getSecondaryVideoOSDTopMargin(final CompletionCallbackWith<Integer> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets the OSD top margin in video pixels. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      final CompletionCallbackWith<Integer> callbackThe execution callback with the value(s) returned.
      Set OSD Left Margin
      method
      method setSecondaryVideoOSDLeftMargin
      void setSecondaryVideoOSDLeftMargin(int margin, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets the OSD left margin in video pixels. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      int marginLeft margin of OSD. The range is [0, 50].
      final CompletionCallback callbackThe execution callback with the execution result returned.
      Get OSD Left Margin
      method
      method getSecondaryVideoOSDLeftMargin
      void getSecondaryVideoOSDLeftMargin(final CompletionCallbackWith<Integer> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets the OSD left margin in video pixels. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      final CompletionCallbackWith<Integer> callbackThe execution callback with the value(s) returned.
      Set OSD Bottom Margin
      method
      method setSecondaryVideoOSDBottomMargin
      void setSecondaryVideoOSDBottomMargin(int margin, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets the OSD bottom margin in video pixels. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      int marginBottom margin of OSD. The range is [0, 50].
      final CompletionCallback callbackThe execution callback with the execution result returned.
      get OSD Bottom Margin
      method
      method getSecondaryVideoOSDBottomMargin
      void getSecondaryVideoOSDBottomMargin(final CompletionCallbackWith<Integer> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets the OSD bottom margin in video pixels. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      final CompletionCallbackWith<Integer> callbackThe execution callback with the value(s) returned.
      Set OSD Right Margin
      method
      method setSecondaryVideoOSDRightMargin
      void setSecondaryVideoOSDRightMargin(int margin, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets the OSD right margin in video pixels. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      int marginRight margin of OSD. The range is [0, 50].
      final CompletionCallback callbackThe execution callback with the execution result returned.
      Get OSD Right Margin
      method
      method getSecondaryVideoOSDRightMargin
      void getSecondaryVideoOSDRightMargin(final CompletionCallbackWith<Integer> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets the OSD right margin in video pixels. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      final CompletionCallbackWith<Integer> callbackThe execution callback with the value(s) returned.
      Set OSD Unit
      method
      method setSecondaryVideoOSDUnit
      void setSecondaryVideoOSDUnit(SecondaryVideoOSDUnit unit, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets the OSD units to either metric or imperial. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      SecondaryVideoOSDUnit unitOSD units.
      final CompletionCallback callbackThe execution callback with the execution result returned.
      Get OSD Unit
      method
      method getSecondaryVideoOSDUnit
      void getSecondaryVideoOSDUnit(final CompletionCallbackWith<SecondaryVideoOSDUnit> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets the OSD units (metric or imperial). It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      final CompletionCallbackWith<SecondaryVideoOSDUnit> callbackThe execution callback with the value(s) returned.
      Set Output Format for HDMI
      method
      method setSecondaryVideoOutputFormatForHDMI
      void setSecondaryVideoOutputFormatForHDMI(SecondaryVideoFormat format, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets the Remote Controller HDMI video port output video format. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      SecondaryVideoFormat formatThe value of the SecondaryVideoFormat Enum.
      final CompletionCallback callbackThe execution callback with the execution result returned.
      Get Output Format for HDMI
      method
      method getSecondaryVideoOutputFormatForHDMI
      void getSecondaryVideoOutputFormatForHDMI(final CompletionCallbackWith<SecondaryVideoFormat> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets the Remote Controller HDMI video port output video format. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      final CompletionCallbackWith<SecondaryVideoFormat> callbackThe execution callback with the execution result returned.
      Set Output Format For SDI
      method
      method setSecondaryVideoOutputFormatForSDI
      void setSecondaryVideoOutputFormatForSDI(SecondaryVideoFormat format, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets the Remote Controller SDI video port output video format. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      SecondaryVideoFormat formatThe value of the SecondaryVideoFormat Enum.
      final CompletionCallback callbackThe execution callback with the execution result returned.
      Get Output Format For SDI
      method
      method getSecondaryVideoOutputFormatForSDI
      void getSecondaryVideoOutputFormatForSDI(final CompletionCallbackWith<SecondaryVideoFormat> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets the Remote Controller SDI video port output video format. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      final CompletionCallbackWith<SecondaryVideoFormat> callbackThe execution callback with the execution result returned.
      Set PIP Position
      method
      method setSecondaryVideoPIPPosition
      void setSecondaryVideoPIPPosition(PIPPosition position, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Sets the PIP (Picture In Picture) position relative to the top left corner of the main subject video feed. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      PIPPosition positionPosition of the PIP on the screen.
      final CompletionCallback callbackThe execution callback with the execution result returned.
      Get PIP Position
      method
      method getSecondaryVideoPIPPosition
      void getSecondaryVideoPIPPosition(final CompletionCallbackWith<PIPPosition> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Gets the PIP (Picture In Picture) position relative to the top left corner of the main subject video feed. It is supported by Phantom 4 Professional, Matrice 200, Matrice 200 series V2, Inspire 1 and Inspire 2.

      Input Parameters:
      final CompletionCallbackWith<PIPPosition> callbackThe execution callback with the value(s) returned.


      Live View

      Simultaneous Output Enabled
      method
      method setLiveViewSimultaneousOutputEnabled
      void setLiveViewSimultaneousOutputEnabled(boolean enabled, final CompletionCallback callback)
      Package:dji.sdk.remotecontroller
      Description:

      Enables the setting to output video to both the mobile device and the HDMI port on the remote controller simultaneously. When it is disabled and the remote controller is connected to a HDMI display, the mobile device will not receive the live view. It is only supported by Inspire 1 and M100.

      Input Parameters:
      boolean enabledtrue to enable live view simultaneous output.
      final CompletionCallback callbackThe execution callback with the value(s) returned.
      method getLiveViewSimultaneousOutputEnabled
      void getLiveViewSimultaneousOutputEnabled(final CompletionCallbackWith<Boolean> callback)
      Package:dji.sdk.remotecontroller
      Description:

      Determines whether the setting to output video to both the mobile device and the HDMI port on the remote controller simultaneously is enabled or not. When it is disabled and the remote controller is connected to a HDMI display, the mobile device will not receive the live view. It is only supported by Inspire 1 and M100.

      Input Parameters:
      final CompletionCallbackWith<Boolean> callbackThe execution callback with the value(s) returned.


      Focus

      Check Remote Focus Support
      method
      method isFocusControllerSupported
      boolean isFocusControllerSupported()
      Package:dji.sdk.remotecontroller
      SDK Key:RemoteControllerKey.IS_FOCUS_CONTROLLER_SUPPORTED
      Description:

      Query method to check if the Remote Controller supports Remote Focus State Checking.

      Return:
      booleanA boolean value.
      Inherited Methods:
      dji.sdk.base.BaseComponent
      method
      method setComponentListener
      void setComponentListener(ComponentListener listener)
      Package:dji.sdk.base
      Description:

      Sets the listener for the DJI component.

      Input Parameters:
      ComponentListener listenerThe callback of ComponentListener.
      method
      method getIndex
      int getIndex()
      Package:dji.sdk.base
      Description:

      Returns the component index. Index is zero based. A component will have an index greater than zero when there are multiple components of the same type on the DJI product, and one of the components already has the index 0. For instance, M210 can have two gimbal mounted cameras, and will therefore have two gimbal components with indices 0 and 1, and two camera components with indices 0 and 1. For Matrice 600, there are printed numbers on the battery boxes. The Battery component instance with index 0 corresponds to battery compartment number 1. For Inspire 2 and M200 series, Battery with index 0 corresponds to the battery on the port (left hand) side of the aircraft. For M210, M210 RTK, M300 RTK and M350 RTK, Camera and Gimbal with index 0 corresponds to the camera and gimbal on the port (left hand) side of the aircraft. Lidar with index 0 corresponds to the lidar(Zenmuse L1) on the port (left hand) side of the aircraft.

      Return:
      intAn int value of index.
      method isConnected
      boolean isConnected()
      Package:dji.sdk.base
      Description:

      true if the component is connected.

      Return:
      booleantrue if the component is connected.
      method getSerialNumber
      void getSerialNumber(@NonNull CompletionCallbackWith<String> callback)
      Package:dji.sdk.base
      Description:

      Gets the serial number of the component. Depending on the component, this serial number might not match the serial number found on the physical component. Not supported by Spark.

      Input Parameters:
      @NonNull CompletionCallbackWith<String> callbackThe execution callback with the value returned.
      method getFirmwareVersion
      void getFirmwareVersion(@NonNull CompletionCallbackWith<String> callback)
      Package:dji.sdk.base
      Description:

      Returns the firmware version of the component. Each component will have a different firmware version, the combination of which will form the package firmware version getFirmwarePackageVersion found in BaseProduct. Not supported by Spark.

      Input Parameters:
      @NonNull CompletionCallbackWith<String> callbackThe execution callback with the value(s) returned.