2016-08-09 4 views
0

В настоящее время я пишу приложение для Android, которое загружает все изображения с Inspire 1. Я использую последнюю версию SDK (v3.2.1). Для этого я использую DJIPlaybackManager. Тем не менее, я столкнулся с проблемой загрузки всех изображений.Проблемы с загрузкой медиа с DJI Inspire 1 с помощью Android SDK

Всякий раз, когда я запускаю приведенный ниже код, я получаю «Нет файлов», хотя прямо над ним. Я думаю, что я выбираю все файлы на SD-карте. Эта ошибка возникает в методе onError в CameraFileDownloadCallback. Ошибка, возвращенная из selectAllFiles(), равна null, поэтому я считаю, что это означает, что она выбрана правильно. Может ли кто-нибудь сказать мне, что я делаю неправильно? Я пробовал много вещей, но ничего не работает.

Любая помощь была бы принята с благодарностью.

private static String TAG = "MediaManager"; 

public static void downloadAllMedia(final Context mContext) { 
    Log.d(TAG, "Downloading media..."); 
    final String fileDirPath = mContext.getFilesDir().getPath(); 
    DJIBaseProduct product = DJIDemoApplication.getProductInstance(); 
    if (product != null && product.isConnected()) { 
     if (product instanceof DJIAircraft) { 
      final DJICamera camera = product.getCamera(); 
      if (camera != null) { 
       camera.setCameraMode(DJICameraSettingsDef.CameraMode.Playback, new DJIBaseComponent.DJICompletionCallback() { 
        @Override 
        public void onResult(DJIError djiError) { 
         if (djiError == null) { 
          final DJIPlaybackManager playbackManager = camera.getPlayback(); 
          DJICameraError enterPreviewModeError = playbackManager.enterMultiplePreviewMode(); 
          if(enterPreviewModeError != null) { 
           Log.e(TAG, "Failed to enter mutliple preview mode"); 
          } 
          DJICameraError enterEditModeError = playbackManager.enterMultipleEditMode(); 
          if(enterEditModeError != null) { 
           Log.e(TAG, "Failed to enter multiple edit mode: " + enterEditModeError.getDescription()); 
           return; 
          } 
          DJIError selectFilesError = playbackManager.selectAllFiles(); 
          if (selectFilesError != null) { 
           Log.e(TAG, "Failed to select files on device: " + selectFilesError.getDescription()); 
           return; 
          } else { 
           Log.d(TAG, "Successfully selected all media"); 
          } 
          playbackManager.downloadSelectedFiles(new File(fileDirPath), new DJIPlaybackManager.CameraFileDownloadCallback() { 
           @Override 
           public void onStart() { 
            Log.d(TAG, "Starting fetch of media"); 
           } 

           @Override 
           public void onEnd() { 
            Log.d(TAG, "Finished downloading media"); 
           } 

           @Override 
           public void onError(Exception e) { 
            Log.e(TAG, "Failed downloading media: " + e.getMessage()); 
           } 

           @Override 
           public void onProgressUpdate(int i) { 
            Log.d(TAG, "Media download from drone: " + i + "%"); 
           } 
          }); 
         } else { 
          Log.e(TAG, "Could not set the Camera mode to playback"); 
         } 
        } 
       }); 
      } else { 
       Log.e(TAG, "Camera is not available"); 
      } 
     } 
    } 
} 

ответ

0

Вот код link для эквивалентного кода в образце образца DJI. После загрузки и запустить его, вы можете изменить номер строки 112

mPlaybackManager.selectAllFiles();

После запуска этого кода нажмите среднюю кнопку 1st Photo, чтобы выбрать все фотографии и нажмите Download.

подтверждено, что он работает с продуктом DJI.

+0

Я видел этот пример, но, к сожалению, он относится к более ранней версии SDK, поэтому он структурирован совсем по-другому (методы выбора имеют обратные вызовы, а теперь они кажутся одноразовыми). Похоже, что DJI немного изменился в своем SDK. – rohan32

+0

Ссылка, отправленная для версии 3.2.1. Насколько я знаю, это последнее публичное. На какой из них вы смотрите? – Ichaival

 Смежные вопросы

  • Нет связанных вопросов^_^