@Override
  protected void onAttachedToWindow() {
    super.onAttachedToWindow();

    if (DJIModuleVerificationUtil.isFlightControllerAvailable()) {

      flightController =
          ((DJIAircraft) DJISampleApplication.getProductInstance()).getFlightController();

      intelligentFlightAssistant = flightController.getIntelligentFlightAssistant();

      if (intelligentFlightAssistant != null) {

        intelligentFlightAssistant.setVisionDetectionStateUpdatedCallback(
            new DJIIntelligentFlightAssistant.VisionDetectionStateUpdatedCallback() {
              @Override
              public void onStateUpdated(
                  DJIIntelligentFlightAssistant.DJIVisionDetectionState djiVisionDetectionState) {
                if (null != djiVisionDetectionState) {
                  mStringBuffer.delete(0, mStringBuffer.length());

                  List<DJIIntelligentFlightAssistant.DJIVisionDetectionSector>
                      visionDetectionSectorList = djiVisionDetectionState.getDetectionSectors();

                  for (DJIIntelligentFlightAssistant.DJIVisionDetectionSector
                      visionDetectionSector : visionDetectionSectorList) {

                    visionDetectionSector.getObstacleDistanceInMeters();
                    visionDetectionSector.getWarningLevel();

                    mStringBuffer
                        .append("Obstacle distance: ")
                        .append(visionDetectionSector.getObstacleDistanceInMeters())
                        .append("\n");
                    mStringBuffer
                        .append("Distance warning: ")
                        .append(visionDetectionSector.getWarningLevel())
                        .append("\n");
                  }

                  mStringBuffer
                      .append("WarningLevel: ")
                      .append(djiVisionDetectionState.getWarningLevel().toString())
                      .append("\n");
                  mStringBuffer
                      .append("Braking state: ")
                      .append(djiVisionDetectionState.isBraking())
                      .append("\n");
                  mStringBuffer
                      .append("Sensor state: ")
                      .append(djiVisionDetectionState.isSensorWorking())
                      .append("\n");

                  mHandler.sendEmptyMessage(SET_CHANGE_STATUS);
                }
              }
            });
      }

    } else {
      Log.i("$$$$$$$$$$$$$$$$$$$", "onAttachedToWindow FC NOT Available");
    }
  }