Search code examples
androidbatterydji-sdk

DJI Battery Null


After a successful connection to the aircraft meaning this

BaseProduct baseProduct = DJISDKManager.getInstance().getProduct();
Aircraft aircraft;
if (baseProduct == null || !baseProduct.isConnected() ||
            !(baseProduct instanceof Aircraft)
           || baseProduct.getModel() == Model.UNKNOWN_AIRCRAFT) {
       aircraft =  null
}
else {
  aircraft = (Aircraft)baseProduct;
}
if(aircraft!=null){
   aircraft.getBattery(); // returns null
   aircraft.getBatteries(); // returns null
   aircraft.getBatteryBox(); // returns null
}

I always receive aircraft.getBattery() or aircraft.getBatteries() or aircraft.getBatteryBox() null.

P.S. Device model is Matrice 600 pro, and I can print the device model when the aircraft is connected (it is truly connected).


Solution

  • Android use: Battery.setAggregationStateCallback.

    and,IOS use: DJIBattery.aggregationDelegate = self;