2014-02-15 4 views
4

Google 드라이브를 사용하여 파일을 저장하는 Android 앱을 만들려고합니다. 지금 https://developers.google.com/drive/android/get-startedGoogle 드라이브 수정 날짜가 잘못되었습니다.

DriveFile file = Drive.DriveApi.getFile(mGoogleApiClient, fileId); 
Metadata fmd = file.getMetadata(mGoogleApiClient).await().getMetadata(); 
Log.e("modified date",""+fmd.getModifiedDate()); 

하지만주고를 (안드로이드에 대한 새로운 구글 드라이브 API를 사용하여) 아래의 코드를 사용하여 파일 시간을 수정 얻을 수있는 파일 시도의 변화를 감지 device.for 어떤하여 동일한 파일의 변화를 감지 할 모드화 된 시간은 항상 잘못되었습니다 .. 다른 장치 (동일한 응용 프로그램 사용)가 동일한 파일을 수정할 때 수정 된 시간을 반환하지 않습니다. 파일의 변경을 감지하는 다른 방법이 있습니까 ???

고맙습니다 나는 또한 변화를 감지하기 위해 수정 된 날짜를 사용하지 마십시오 코드하지만 행운

DriveFile file = Drive.DriveApi.getFile(mGoogleApiClient, fileId); 
file.getMetadata(mGoogleApiClient).addResultCallback(new DemoClassForHandleCallBack()); 

public class DemoClassForHandleCallBack implements OnMetadataRetrievedCallback{ 

    @Override 
    public void onMetadataRetrieved(MetadataResult result) { 
     boolean isSuccess = result.getStatus().isSuccess(); 
      Log.i("is success",""+isSuccess); 
     Metadata fmd = result.getMetadata(); 
     Log.e("modified date",""+fmd.getModifiedDate()); 
     } 
    } 
+0

ResultCallback 사용 중에 메타 데이터를 성공적으로 가져 오는지 여부를 확인 했습니까? – AndyFaizan

+0

예 그것을 확인하고 도움을 항상 성공 (상태 {statusCode = SUCCESS, 해상도 = null}) thnx를 반환합니다 – nikhil

+0

당신은 onConnected 메서드에서 getFile을 호출하고 있습니까? – AndyFaizan

답변

0

이하로 사용하고있다. etag에 대한 변경 사항을 찾아야합니다.

+0

하지만 새로운 Google 드라이브에는 etag와 비슷한 점이 없습니다. android api – nikhil

+1

사과드립니다. 질문 태그에는 google-drive-sdk이 포함되어 있기 때문에 새로운 Android API를 언급하고 있다는 것을 깨닫지 못했습니다. 새 API에 많은 드라이브 메타 데이터가 누락되었습니다. API가 완성 될 때까지 기다리거나 기존 드라이브로 돌아갈 수 있습니다. – pinoyyid

+0

ok & thnx for help ... – nikhil

0

onMetadataRetrieved(MetadataResult result) API를 사용하셨습니까? 귀하의 코드에서 그렇게 보이지 않습니다. onMetadaRetrieved 함수 내부에서 getMetaData() 메서드로 호출해야합니다.

+0

네, 이걸 사용해도 행운도없이 .... – nikhil

+0

이 코드를 답안에 붙여주세요. 그 여기에서 읽기가 어렵다. – AndyFaizan

+0

이제 문제의 코드를 확인할 수 있습니다 ... – nikhil

2

아직 답을 찾고 계시는지 모르겠지만 방금이 문제를 직접 해결했습니다.

처음에는 해당 파일을 열지 않는 한 메타 데이터가 부실/캐시 된 것으로 나타났습니다. 다음과 같이

따라서, 작업 코드는 다음과 같습니다

DriveFile file; 

// Trick Google Drive into fetching the remote file 
// which has the latest metadata 
file.open(getGoogleApiClient(), DriveFile.MODE_READ_ONLY, null).await(); 

DriveResource.MetadataResult result = file.getMetadata(getGoogleApiClient()).await(); 
Metadata metadata = result.getMetadata(); 

// Get the modified date 
metadata.getModifiedDate(); 

나는이 다른 사람을 도움이되기를 바랍니다.

+0

나는 비슷한 행동을 관찰하고 있습니다. 수정 된 날짜가 변경되지 않으면 파일에서 읽지 않았습니다. 전체 프로세스를 다시 시작한 경우에만 새 파일을 가져옵니다.수표를 지우고 (매회 가져 오기) 모든 것이 예상대로 작동했습니다. –

관련 문제