2012-02-15 9 views
1

私は連絡先が変更されている場合は、Androidの連絡先にプロパティがあるかどうかを調べようとしています。連絡先のバージョンや変更時刻を取得するにはどうすればよいですか?

ContactsContracts.Contacts.Entity.VERSIONフィールドで連絡先のバージョンを読み取ることができたが、その値を取得できませんでした。私はいつもIllegalArgumentExceptionを取得します。

連絡先のバージョンを取得する方法を知っている人や、アドレス帳の最後のスキャン以降に連絡先が変更されているかどうかを確認する別の方法がありますか?

答えて

3

私は自分の仕事に忙しかったので、私はそれをテストしなかった。

public void getVersion() { 
    //specify which fields of RawContacts table to be retrieved. 
    String[] projection = new String[] {RawContacts.VERSION}; 

    //query the RawContacts.CONTENT_URI 
    Cursor cur = mContext.getContentResolver().query(RawContacts.CONTENT_URI, projection,null,null,null); 

    while(cur.moveToNext()){ 
    String version = cur.getString(cur.getColumnIndex(RawContacts.VERSION));  
    Log.i("VersionRetriever", version); 
    } 

    //Always remember to close the cursor. Otherwise it leads to side-effects. 
    cur.close(); 

}

+0

ありがとう、私はRawContactsバージョンの合計を実行して、あなたのコードを編集しました。 – Xabaras

+0

あなたのコードをここに追加すれば、人々が理解しやすく、間違いを少なくすることができれば、本当に大好きです。 – JaydeepW

+0

@jaydeepw ...私はこの記事を見ることを余儀なくされた連絡先の更新時間を探しています。私はすべてのアカウントのバージョンを取得しました。バージョン番号が実際に変更されない連絡先の情報を変更しようとすると、私の質問はVERSIONから変更時刻を取得する方法ですか? – Saty

0

RawContacts.CONTACT_STATUS_TIMESTAMPの代わりRawContacts.VERSIONを試してみてください。

+0

連絡先の変更時刻は提供されませんが、ステータス更新タイムスタンプは通常はNULL /割り当てられません。 –

0

特定のデータ型(電話または名前など)が変更されたかどうかを知りたい場合は、Data.DATA_VERSION(ただしData.CONTENT_URI)をチェックできます。

関連する問題