2013-08-30 126 views
1

我可以從我的聯繫人列表中獲取聯繫人ID和姓名。但是LAST_TIME_CONTACTED返回0.如何正確獲取LAST_TIME_CONTACTED?LAST_TIME_CONTACTED返回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)); 
    } 
} 

回答

1

By the looks of things這是不正常的所有設備廠商的實現。因此,不幸的是,這似乎是一個不可靠的領域。幾乎可以肯定的情況下,如果你使用的是三星Galaxy設備...

作爲一個方面說明,我認爲它存儲爲一個整數,所以你可能會更好使用getInt(),但我非常懷疑這就是問題所在。

+0

我在手機中有[當前被叫ID](https://play.google.com/store/apps/details?id=com.webascender.callerid)。它列出了我上次聯繫的所有聯繫人信息。它如何實現這一目標? – user4757345

+0

可能是一個自定義的SQLite數據庫。 –

1

像埃德Hinchliffe說,這似乎是一個不可靠的領域。但是,如果您的用例可以接受,則可以自己存儲此類值。

如果您使用BroadcastReceiverPhoneStateListener,您可能可以將其關閉。

您只需使用String.valueOf(currentDate.getTime());並將值存儲在某處。

+0

我的手機中有[當前的被叫號碼](https://play.google.com/store/apps/details?id=com.webascender.callerid)。它列出了我上次聯繫的所有聯繫人信息。它如何實現這一目標? – user4757345