DJI Mobile SDK Documentation

      class AppActivationManager

      class AppActivationManager
      Package:dji.sdk.realname
      Description:

      DJI aircraft firmware require mobile applications that control DJI aircraft to be activated with the user's DJI account, if that application is being used in China. This will ensure operators use the correct set of geospatial information and flight functions for their aircraft, as determined by their geographical location and user profile.

      A summary of the activation system is:

      - Users in China are required to activate their application by logging into their DJI account at least once every three months within the application
      - Activation will be persistent in the application until the user logs out
      - A data connection will be required to log into a DJI account
      - Outside of China, the SDK will automatically activate the application without requiring the user to log in
      - Additionally, users in china are required to bind their aircraft to their user account in DJI Go. This is required only once.

      If an application is not activated, the aircraft not bound (if required), or a legacy version of the SDK (<4.1) is being used, all camera live streams will be disabled, and flight will be limited to a cylinder of 100m diameter and 30m height to ensure the aircraft stays within line of sight.

      This class is used to check the state of application activation and aircraft binding.

      Class Members:
      Information
      method
      method getAppActivationState
      @NonNull
      AppActivationState getAppActivationState()
      Package:dji.sdk.realname
      Description:

      Current App Activation state.

      Return:
      AppActivationStateAn enum value of AppActivationState.
      method getAircraftBindingState
      @NonNull
      AircraftBindingState getAircraftBindingState()
      Package:dji.sdk.realname
      Description:

      Current aircraft binding state. Users in China need to bind additional account details with the aircraft one-time through DJI Go. These details need to be bound and the application needs to be activated by logging into their DJI Go account to lift the flight restrictions.

      Return:
      AircraftBindingStateAn enum value of AircraftBindingState.
      method addAircraftBindingStateListener
      void addAircraftBindingStateListener(@NonNull AircraftBindingStateListener listener)
      Package:dji.sdk.realname
      Description:

      Add the Aircraft binding state listener.

      Input Parameters:
      @NonNull AircraftBindingStateListener listenerA listener of AircraftBindingStateListener.
      method addAppActivationStateListener
      void addAppActivationStateListener(@NonNull AppActivationStateListener listener)
      Package:dji.sdk.realname
      Description:

      Add listener for the app activation state update.

      Input Parameters:
      @NonNull AppActivationStateListener listenerA listener of AppActivationStateListener.
      method removeAircraftBindingStateListener
      void removeAircraftBindingStateListener(@NonNull AircraftBindingStateListener listener)
      Package:dji.sdk.realname
      Description:

      Remove the aircraft binding state listener.

      Input Parameters:
      @NonNull AircraftBindingStateListener listenerA listener of AircraftBindingStateListener.
      method removeAppActivationStateListener
      void removeAppActivationStateListener(@NonNull AppActivationStateListener listener)
      Package:dji.sdk.realname
      Description:

      Remove activation state listener.

      Input Parameters:
      @NonNull AppActivationStateListener listenerA listener of AppActivationStateListener.
      enum AircraftBindingState
      @EXClassNullAway
      enum AircraftBindingState
      Package:dji.common.realname
      Description:

      The aircraft's binding state.

      Enum Members:
      INITIALThe binding state of the aircraft is not yet determined. The aircraft will only be in this state until DJI Go or a DJI Mobile SDK based application rights the binding information to the aircraft. Binding is only required if the user is in China. If the user is not in China, then this state will become NOT_REQUIRED after the country code check is complete. If country code check has been disabled, the user will need to use DJI Go to move to the NOT_REQUIRED state. In this state, the aircraft will have the 30m height and 50m radius limitation.
      UNBOUNDThe aircraft is not currently bound, and needs to be (as it is in China). In this state, the aircraft will have 30m max flight height and 50m max flight distance limitation. User should finish the one-off binding process with DJI Go to remove the flight limitation.
      UNBOUND_BUT_CANNOT_SYNCThe aircraft is flying inside China and is unbound. The aircraft can be bound using DJI Go. If DJI Go is connected to the aircraft, then the binding will be stored in the aircraft. If DJI Go is not connected to the aircraft during the binding process, then the binding result will be stored on a server. The SDK can query this server to see if the binding has already happened, and if it has, download the binding to the aircraft. However, if the aircraft is unbound, and the server is not reachable, then this state will be presented. The user should connect the mobile device to the Internet to refresh this state.
      BOUNDThe aircraft is bound.
      NOT_REQUIREDThe aircraft is not bound but it is not currently located in China. Therefore, binding the aircraft is not required.
      NOT_SUPPORTEDThe aircraft's firmware does not support the App Activation system.
      UNKNOWNEither the aircraft is disconnected or the connected product is not a DJI aircraft.
      Class Members:
      enum AppActivationState
      @EXClassNullAway
      enum AppActivationState
      Package:dji.common.realname
      Description:

      The App Activation state.

      Enum Members:
      NOT_SUPPORTEDThe aircraft's firmware does not support the App Activation System.
      LOGIN_REQUIREDThe application needs to be activated by the user through their DJI account. Use UserAccountManager to enable the user to log in. Log in is only required if the aircraft is located in China.
      ACTIVATEDThe application is activated and flight restrictions turned off.
      UNKNOWNEither the aircraft is disconnected or the connected product is not a DJI aircraft.
      Class Members:
      interface AircraftBindingStateListener
      interface AircraftBindingStateListener
      Package:dji.common.realname
      Description:

      An interface for obtaining AircraftBindingState.

      Interface Methods:

      Callback Method

      State
      method
      method onUpdate
      void onUpdate(AircraftBindingState state)
      Package:dji.common.realname
      Description:

      Called when the App Activation manager updates the aircraft binding state.

      Input Parameters:
      AircraftBindingState stateThe aircraft binding state. Use this state to check if it is required to use DJI Go to bind the aircraft.
      interface AppActivationStateListener
      interface AppActivationStateListener
      Package:dji.common.realname
      Description:

      An interface for obtaining AppActivationState.

      Interface Methods:

      Callback Method

      State
      method
      method onUpdate
      void onUpdate(AppActivationState state)
      Package:dji.common.realname
      Description:

      Called when the App Activation state changes.

      Input Parameters:
      AppActivationState stateThe App Activation state. Use this state to check if login is required to unrestrict the flight limitation.