Android Google Drive API getRequest.getMediaHttpDownloader()始终为空。为什么?
下载驱动器文件时,我试图使用MediaHttpDownloaderProgressListener更新progressBar,但以下代码返回NullPointer异常:Android Google Drive API getRequest.getMediaHttpDownloader()始终为空。为什么?,android,google-drive-api,Android,Google Drive Api,下载驱动器文件时,我试图使用MediaHttpDownloaderProgressListener更新progressBar,但以下代码返回NullPointer异常: class CustomProgressListener implements MediaHttpDownloaderProgressListener { public void progressChanged(MediaHttpDownloader downloader) { switch (downl
class CustomProgressListener implements MediaHttpDownloaderProgressListener {
public void progressChanged(MediaHttpDownloader downloader) {
switch (downloader.getDownloadState()) {
case MEDIA_IN_PROGRESS:
System.out.println(downloader.getProgress());
break;
case MEDIA_COMPLETE:
System.out.println("Download is complete!");
}
}
}
OutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory().toString()+"/tmp/driveFile.jpg");
DriveFiles.Get request = drive.files().get(fileId);
request.getMediaHttpDownloader().setProgressListener(new CustomProgressListener());
request.download(out);
例外情况总是在这一行:
request.getMediaHttpDownloader().setProgressListener(new CustomProgressListener());
因为“request.getMediaHttpDownloader()”为空,但请求是正常的(我测试了它)
您能帮我吗?使用以下代码解决:
private static void downloadFile(boolean useDirectDownload, File uploadedFile)
throws IOException {
// create parent directory (if necessary)
java.io.File parentDir = new java.io.File(DIR_FOR_DOWNLOADS);
if (!parentDir.exists() && !parentDir.mkdirs()) {
throw new IOException("Unable to create parent directory");
}
OutputStream out = new FileOutputStream(new java.io.File(parentDir, uploadedFile.getTitle()));
MediaHttpDownloader downloader =
new MediaHttpDownloader(httpTransport, drive.getRequestFactory().getInitializer());
downloader.setDirectDownloadEnabled(useDirectDownload);
downloader.setProgressListener(new FileDownloadProgressListener());
downloader.download(new GenericUrl(uploadedFile.getDownloadUrl()), out);
}
Hello@Meroelyth,我试图找出两者之间的区别:对我来说,http客户端似乎可以用于非谷歌下载。上面的示例支持下载Chuck,它是api客户端库的一部分,而不是http。所以我有点困惑。提前谢谢!