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.
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.
The 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 DJIAppActivationAircraftBindingStateNotRequired 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 DJIAppActivationAircraftBindingStateNotRequired state. In this state, the aircraft will have the 30m height and 50m radius limitation.
DJIAppActivationAircraftBindingStateUnbound
The 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.
The 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.
DJIAppActivationAircraftBindingStateBound
The aircraft is bound.
DJIAppActivationAircraftBindingStateNotRequired
The aircraft is not bound but it is not currently located in China. Therefore, binding the aircraft is not required.
DJIAppActivationAircraftBindingStateNotSupported
The aircraft's firmware does not support the App Activation system.
DJIAppActivationAircraftBindingStateUnknown
Either the aircraft is disconnected or the connected product is not a DJI aircraft.
The aircraft's firmware does not support the App Activation System.
DJIAppActivationStateLoginRequired
The application needs to be activated by the user through their DJI account. Use DJIUserAccountManager to enable the user to log in. Log in is only required if the aircraft is located in China.
DJIAppActivationStateActivated
The application is activated and flight restrictions turned off.
DJIAppActivationStateUnknown
Either the aircraft is disconnected or the connected product is not a DJI aircraft.