我的Android應用程序可以讓Google Drive挑選一個文件。選擇文件後,結果會返回到我的應用程序的onActivityResult
,我可以獲得DriveId
。到現在爲止還挺好。爲什麼DriveFile openContents間歇性地導致失敗?
當我嘗試打開這個文件時,它有時會起作用,有時不起作用。換句話說,contentsResult.getStatus().isSuccess()
有時是真的,有時是錯誤的。
getStatus()
沒有任何說明它爲什麼失敗並且沒有未決解決方案。
看着Android的logcat,我看到這個消息似乎與問題有關。這不是從我的應用程序:
E/FileDownloader﹕ Error downloading: EntrySpec[769]
java.io.IOException: Unexpected response code: 403
at com.google.android.gms.drive.metadata.sync.syncadapter.a.f.a(SourceFile:232)
at com.google.android.gms.drive.metadata.sync.syncadapter.a.f.a(SourceFile:69)
at com.google.android.gms.drive.metadata.sync.syncadapter.a.g.run(SourceFile:344)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:811)
麻煩的是,這是不一致的。有些文件打開,有些則不打開。
這與我打開的文件無關;如果我重新啓動應用程序,相同的錯誤文件將開始工作,其他人將失敗。我也進入了API控制檯,並將此API的配額增加到100個請求/用戶/秒。
我們補充的問題,這裏是我嘗試打開該文件:
DriveFile file = Drive.DriveApi.getFile(mGoogleApiClient, driveId);
file.openContents(mGoogleApiClient,DriveFile.MODE_READ_ONLY,null)
.setResultCallback(new ResultCallback<DriveApi.ContentsResult>() {
@Override
public void onResult(DriveApi.ContentsResult contentsResult) {
if (!contentsResult.getStatus().isSuccess()) {
Log.w(TAG, "Could not open Google Drive file");
if (contentsResult.getStatus().getResolution() != null) {
//There is never a resolution
}
return;
}
}
...
什麼是狀態碼和消息? – 2014-11-05 01:03:00
很簡單:'意外迴應代碼:403'(上述文章中的第一個錯誤塊)。這不是作爲我自己的應用程序日誌的一部分出現的,所以除此之外我什麼都看不到。 – Mendhak 2014-11-05 11:25:57
對我來說同樣的錯誤... – Arnaud 2014-11-05 19:11:11