2014-11-03 1 views
1

내 Android 애플리케이션에서 Google 드라이브로 파일을 선택할 수 있습니다. 파일을 선택하면 결과가 내 응용 프로그램의 onActivityResult으로 반환되고 DriveId을 얻을 수 있습니다. 여태까지는 그런대로 잘됐다.DriveFile의 오픈 컨텐트가 간헐적으로 실패하는 이유는 무엇입니까?

이 파일을 열려고 시도 할 때 가끔 작동하고 때로는 않습니다. 즉, 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 요청/초/초로 늘 렸습니다.

지금 여기에 내가 파일을 열려고 시도하는 방법이다, 문제를 보완하기 위해 : API 호출을하는 동안 당신은 속도 제한 오류를 타격 한 것 같은 설명에서

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; 
         } 
       } 
       ... 
+0

상태 코드 및 메시지 란 무엇입니까? –

+0

간단히 말해서 : '예상치 못한 응답 코드 : 403' (위 게시물의 첫 번째 오류 블록). 내 응용 프로그램의 로그에 나타나지 않으므로 그 이상의 내용은 볼 수 없습니다. – Mendhak

+0

나에게도 같은 오류가 발생했습니다 ... – Arnaud

답변

0

을,이 소리. 하루에 할당량 제한에 도달하지는 못했지만 여전히 할당량 제한을 초과 할 수 있습니다. 드라이브 API의 개발자 콘솔에서 초당 할당량 한도를 수정하고 Exponential Backoff 알고리즘을 구현해보세요. 위의 링크와 같이 발생한 403 개의 오류를 처리해야합니다.