В настоящее время я пишу приложение для 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");
}
}
}
}
Я видел этот пример, но, к сожалению, он относится к более ранней версии SDK, поэтому он структурирован совсем по-другому (методы выбора имеют обратные вызовы, а теперь они кажутся одноразовыми). Похоже, что DJI немного изменился в своем SDK. – rohan32
Ссылка, отправленная для версии 3.2.1. Насколько я знаю, это последнее публичное. На какой из них вы смотрите? – Ichaival