在我的应用中,我连接到Google Api:
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.addScope(Drive.SCOPE_APPFOLDER)
.addConnectionCallbacks(mGDriveCallback)
.addOnConnectionFailedListener(mGDriveCallback)
.build();
mGoogleApiClient.connect();
然后在onConnected
mGDriveCallback
函数中发出查询请求:
Query query = new Query.Builder()
.addFilter(Filters.eq(SearchableField.TITLE, "buffer.txt"))
.build();
Drive.DriveApi.query(mGoogleApiClient, query).setResultCallback(mFindFileCallback);
在onResult
的{{1}}中,我检查结果:
mFindFileCallback
现在,即使我亲自上传了" buffer.txt"在我的驱动器上,我收到空结果的metabuffer。因此,代码显示"文件未找到"警告。如果我想找到一个文件夹,也会发生同样的情况。我尝试将if (!result.getStatus().isSuccess()) {
Log.w(TAG, "Problem while retrieving files");
} else {
Log.i(TAG, "Results size: " + result.getMetadataBuffer().getCount());
if (result.getMetadataBuffer().getCount() > 0) {
Metadata md = result.getMetadataBuffer().get(0);
Log.i(TAG, "DriveId: " + md.getDriveId());
} else {
Log.w(TAG, "File not found");
}
}
替换为Filters.eq
,但没有取得任何成功。
任何想法我做错了什么?
答案 0 :(得分:0)
基于Official Google Documentation遇到File not found
错误意味着用户没有对文件的读取权限或文件不存在。
{
"error": {
"errors": [
{
"domain": "global",
"reason": "notFound",
"message": "File not found {fileId}"
}
],
"code": 404,
"message": "File not found: {fileId}"
}
}
建议采取的措施:向用户报告他们对该文件没有读取权限或该文件不存在。告诉他们他们应该要求所有者获得该文件的许可。
注意:确保在发出access_token
文件元数据请求时提供正确的GET
。
以下是相关的SO票证:Drive API for Android unable to access the file created by same App