获取联系方式返回null 4.4.2

时间:2014-03-11 08:03:30

标签: android android-contacts android-4.4-kitkat

我正在尝试为手机中的每个联系人获取联系人版本,

但有些联系人会在'kitkat'中返回contact-version null。

private String getContactVersion(String id)
{
    Uri uri = ContactsContract.RawContacts.CONTENT_URI;
    String[] projection = new String[] { ContactsContract.RawContacts._ID, ContactsContract.RawContacts.VERSION };
    String selection = ContactsContract.RawContacts._ID + " = '" + id + "'";
    Cursor cursor = context.getContentResolver().query(uri, projection, selection, null, null);
    cursor.moveToFirst();
    int columnVersion = cursor.getColumnIndex(ContactsContract.RawContacts.VERSION);
    String version = cursor.getString(columnVersion);
    cursor.close();
    return version;
}

1 个答案:

答案 0 :(得分:0)

根据官方文件:http://developer.android.com/reference/android/provider/ContactsContract.RawContacts.html

  

此行或其相关数据更改时更新的版本号。此字段可用于乐观锁定原始联系人。

实际上它可能是null。 “null”表示联系人未被更改。

此外,“版本”列不是整数。你应该像下面那样得到它

int columnVersion = cursor.getColumnIndex(ContactsContract.RawContacts.VERSION);
String version = cursor.getInt(columnVersion);