4

Googleドライブを使用してファイルを保存するAndroidアプリを作成しようとしています。ファイルの変更を検出するには、次のコードを使用してファイルの変更時刻を取得してみてください(Android用の新しいGoogleドライブAPIを使用)https://developers.google.com/drive /アンドロイド/始めましょう

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

しかし、変更された時刻は常に間違っています..他のデバイス(同じアプリを使用)が同じファイルを変更すると、変更された時刻が返されません。ファイルの変更を検出する他の方法はありますか??? ありがとう

私も以下のコードを使用していますが、運はありません

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());
        }
    }
4

3 に答える 3

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();

これが他の誰かに役立つことを願っています。

于 2015-01-10T16:17:32.560 に答える
0

onMetadataRetrieved(MetadataResult result)APIを利用しましたか?あなたのコードからはそうではないようです。getMetaData()関数内からメソッドを呼び出す必要がありonMetadaRetrievedます。

于 2014-02-17T06:48:47.920 に答える