LAST_TIME_CONTACTED返回0

时间:2013-08-30 19:29:11

标签: android

我可以从联系人列表中获取联系人ID和姓名。但是LAST_TIME_CONTACTED返回0.如何才能正确获得LAST_TIME_CONTACTED?

我的代码:

ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cur.getCount() > 0)
{
    while (cur.moveToNext())
    {
        String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
        String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
        String last = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.LAST_TIME_CONTACTED));
    }
}

2 个答案:

答案 0 :(得分:1)

By the looks of things所有设备制造商都没有正确实施。因此,不幸的是,这似乎是一个不可靠的领域。如果你使用的是三星Galaxy设备,几乎可以肯定的话......

作为旁注,我认为它存储为整数,因此您可能更好地使用getInt(),但我非常怀疑这是问题所在。

答案 1 :(得分:1)

像Ed Hinchliffe所说,这似乎是一个不可靠的领域。但是,如果您的用例可以接受,您可以自己存储这样的值。

如果您使用BroadcastReceiverPhoneStateListener,则可以将其关闭。

您只需使用String.valueOf(currentDate.getTime());并将值存储在某处。