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 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.
UNBOUND
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.
UNBOUND_BUT_CANNOT_SYNC
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.
BOUND
The aircraft is bound.
NOT_REQUIRED
The aircraft is not bound but it is not currently located in China. Therefore, binding the aircraft is not required.
NOT_SUPPORTED
The aircraft's firmware does not support the App Activation system.
UNKNOWN
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.
LOGIN_REQUIRED
The 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.
ACTIVATED
The application is activated and flight restrictions turned off.
UNKNOWN
Either the aircraft is disconnected or the connected product is not a DJI aircraft.