Android 上次\u联系的时间\u返回0

Android 上次\u联系的时间\u返回0,android,Android,我可以从联系人列表中获取联系人id和姓名。但上次联系时返回0。如何正确联系上一次 我的代码: ContentResolver cr = getContentResolver(); Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); if (cur.getCount() > 0) { while (cur.moveToNext()) { St

我可以从联系人列表中获取联系人id和姓名。但上次联系时返回0。如何正确联系上一次

我的代码:

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));
    }
}
这并不是所有设备制造商都能正确实现的。因此,不幸的是,这似乎是一个不可靠的字段。几乎可以肯定的是,如果你使用的是三星Galaxy设备


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

正如Ed Hinchliffe所说,它似乎是一个不可靠的字段。然而,如果您的用例可以接受这样的值,那么您可能能够自己存储这样的值

如果您使用
BroadcastReceiver
PhoneStateListener
您可能能够将其拔出


您只需要使用
String.valueOf(currentDate.getTime())并将值存储在某个位置

我的手机里有。它列出了我所有联系人的上次联系信息。它是怎么做到的?我的手机里有。它列出了我所有联系人的上次联系信息。它是如何实现的?可能是一个定制的SQLite数据库。请注意,常数LAST_TIME_CONTACTED在2018年10月和TIMES_CONTACTED一起被弃用。参见和