2014-10-17 1 views
2

Google 드라이브에서 파일을 나열하려고합니다. docs에서 공식 복사 붙여 넣은 메서드를 사용하고 있지만 올바른 결과를 반환하지 않습니다. 또한 최근에 삭제 된 파일 (휴지통에있는 파일)을 나열하고 최근에 만든 일부 파일을 나열하지 않습니다. 캐시 된 것처럼 보이며 변경 사항을 반영하는 데 오랜 시간이 걸릴 수 있습니다 (경우에 따라 수 시간이 걸릴 수도 있음). 누구나 Google 드라이브의 파일 목록을 오래되고 유효하지 않은 실시간 및 유효한 방법으로 알 수 있습니까? 나는이 방법을 사용하고 있습니다 :Google 드라이브 Android API - 폴더의 파일 목록이 항상 오래된/캐시 된 상태이며 신선한 상태가 아닙니다.

// I need to get list of NOT TRASHED files from root directory 
    Query query = new Query.Builder().addFilter(Filters.eq(SearchableField.TRASHED, false).build(); 
    DriveFolder folder = Drive.DriveApi.getRootFolder(mGoogleApiClient); 

    MetadataBufferResult filesMetadata = folder.queryChildren(mGoogleApiClient, query).await(); 

    if (!filesMetadata.getStatus().isSuccess()) { 
     log("failed"); 
     return false; 
    } 

    Iterator<Metadata> it = filesMetadata.getMetadataBuffer().iterator(); 

    while (it.hasNext()) { 
     Metadata meta = it.next(); 
     log("File name: " + meta.getTitle() + ", size: " + meta.getFileSize() + ", created: " + meta.getCreatedDate()); 
    } 

    // but this list is outdated, doesn't reflect latest changes 
+0

혹시 발견하셨습니까 이것에 대한 해결책? – Alchete

+0

예 - 이전 API를 사용했습니다. 새로운 것은 실시간이 아닙니다 -이 주제에서 내 대답을 확인하십시오 : http://stackoverflow.com/a/26524098/1360930 – qkx

답변

1
다음과 같은 메소드 호출을 사용하여 동기화 구글 드라이브를 강제로 수 있도록 조치 후 즉시 동기화하지 않습니다

구글 드라이브 API :

Drive.DriveApi.requestSync(_gac); 
+1

효과가 있으면 정말 쉬울 것입니다. 그러나 그렇지 않습니다. – seanpj

+0

나는 Google 드라이브 핵심 API를 사용하고 있다고 생각합니다. 대신 핵심 API는 Google 드라이브 REST API 호출을 사용합니다 .Core API는 Google 드라이브 서버에서 변경 사항을 적용하는 데 약간의 시간이 걸리므로 null 폴더 ID를 얻을 수 있습니다. –

+0

감사합니다 8.4.0 버전과 함께 작동합니다. – Pedram