在制作从Google云端硬盘下载文件的代码时,我遇到了一个非常奇怪的问题。我手动上传的文件既未列出也未在Android上下载。为了进一步确认,我然后从同一个应用程序上传了同一个文件,发现在没有对代码进行任何更改的情况下,它开始进入列表并因此下载。
我用来列出文件的代码是;
ArrayList<Filter> fltrs = new ArrayList<Filter>();
fltrs.add(Filters.eq(SearchableField.TRASHED, false));
if (filename != null) fltrs.add(Filters.eq(SearchableField.TITLE, filename));
fltrs.add(Filters.eq(SearchableField.MIME_TYPE, "text/csv"));
Query qry = new Query.Builder().addFilter(Filters.and(fltrs)).build();
if (mGoogleSignInAccount != null) {
Task<MetadataBuffer> queryTask = mDriveResourceClient.query(qry);
...
在addOnSuccessListener()中,我打开文件,如
final DriveFile file = driveId.asDriveFile();
//Open the file of Google Drive
Task<DriveContents> openFileTask = mDriveResourceClient.openFile(file, DriveFile.MODE_READ_ONLY);
如果我的代码中有任何更改,请告诉我。
在参考文档时,我浏览了此网址https://developers.google.com/drive/android/queries
在此网址中,有一个提及
的说明注意:Android Drive API仅适用于https://www.googleapis.com/auth/drive.file范围。这意味着只有用户使用您的应用程序打开或创建的文件才能与查询匹配。
这是否意味着我无法打开或下载手动上传的文件,还是有办法实现这一目标?
答案 0 :(得分:1)
如果您的应用尚未打开这些文件。然后你无法查询它。但是,即使手动上传,您已经打开/查看它,现在可以搜索这些文件。因此,您必须首先打开此手动上传的文件,以便查询它。