我目前正在编写一个从Inspire 1下载所有图像的Android应用程序。我使用的是最新版本的SDK(v3.2.1)。我正在使用DJIPlaybackManager来执行此操作。但是,我在下载所有图像时遇到了问题。
每当我运行下面的代码时,我得到"没有选择文件"即使在它正上方,我想我会选择SD卡上的所有文件。 CameraFileDownloadCallback中的onError方法抛出此错误。 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 :(得分:0)
这是DJI示例代码中等效代码的link。下载并运行后,您可以将行号112修改为
mPlaybackManager.selectAllFiles();
运行此代码后,按中间按钮1st Photo
选择所有照片,然后按Download
。
确认已与DJI产品合作。