Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从GDrive恢复文件?_Java_Android Studio_Google Drive Api_Google Api Java Client - Fatal编程技术网

Java 如何从GDrive恢复文件?

Java 如何从GDrive恢复文件?,java,android-studio,google-drive-api,google-api-java-client,Java,Android Studio,Google Drive Api,Google Api Java Client,我正在制作一个应用程序,将其SQLite数据库备份存储在GDrive上。我成功地登录并将文件上载到驱动器中,但未能恢复该文件。下面是代码。 我使用SQLiteDatabase来存储fileID,以便在更新和恢复时需要它时可以使用它。我正在寻找一种方法,将利用FileID来恢复。 文件.getDownloadUrl()和文件.getContent()处出错 据我所知,下载URL仅在Google drive api v2中可用,而在V3中不可用 文件的短期下载URL。此字段仅用于包含存储在Googl

我正在制作一个应用程序,将其SQLite数据库备份存储在GDrive上。我成功地登录并将文件上载到驱动器中,但未能恢复该文件。下面是代码。 我使用SQLiteDatabase来存储fileID,以便在更新和恢复时需要它时可以使用它。我正在寻找一种方法,将利用FileID来恢复。 文件.getDownloadUrl()和文件.getContent()处出错


据我所知,下载URL仅在Google drive api v2中可用,而在V3中不可用

文件的短期下载URL。此字段仅用于包含存储在Google Drive中的内容的文件;它不会为Google文档或快捷方式文件填充

在我看来,它不是很稳定,因为并非所有文件类型都会返回下载url

使用Google Drive v3,您应该使用流下载文件

String fileId = "0BwwA4oUTeiV1UVNwOHItT0xfa2M";
OutputStream outputStream = new ByteArrayOutputStream();
driveService.files().get(fileId)
    .executeMediaAndDownloadTo(outputStream);

这应该适用于恢复。如果没有,请告诉我,我会看一看自从我尝试还原以来已经有一段时间了。

检查getDownloadUrl是否没有返回null。实际上getDownloadUrl()不能在那里使用。它变为红色,因为无法识别方法。我该怎么办?需要更改GradleFile?是,它正在工作。**OutputStream OutputStream=新文件OutputStream(路径);**有了这些零钱,谢谢!!但是如何在不知道文件ID的情况下恢复备份。您可以使用file.list来搜索驱动器帐户上的所有文件。谢谢。这个过程现在可以成功完成了。
implementation 'com.google.android.gms:play-services-auth:16.0.1'
    implementation('com.google.apis:google-api-services-drive:v3-rev136-1.25.0')
            {
                exclude group: 'org.apache.httpcomponents'
            }
    implementation('com.google.api-client:google-api-client-android:1.26.0')
            {
                exclude group: 'org.apache.httpcomponents'
            }
    implementation 'com.google.http-client:google-http-client-gson:1.26.0'
String fileId = "0BwwA4oUTeiV1UVNwOHItT0xfa2M";
OutputStream outputStream = new ByteArrayOutputStream();
driveService.files().get(fileId)
    .executeMediaAndDownloadTo(outputStream);