我能夠獲取聯繫人的其他信息(顯示名稱,組織,電話號碼和email_id),但無法獲取該聯繫人的生日和週年紀念。無法從聯繫人獲取正確的生日和週年紀念數據
這是我用於生日的代碼。它取數據,但給我錯誤的數據,即重複所有聯繫人的相同數據。
private String getBDate(String id) {
String bday = null;
ContentResolver cr = getContentResolver();
Uri uri = ContactsContract.Data.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Event.CONTACT_ID,
ContactsContract.CommonDataKinds.Event.START_DATE };
String where = ContactsContract.Data.MIMETYPE + "= ? AND "
+ ContactsContract.CommonDataKinds.Event.TYPE + "="
+ ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY;
String[] selectionArgs = new String[] { ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE };
String sortOrder = null;
Cursor cur = cr.query(uri, projection, where, selectionArgs, sortOrder);
while (cur.moveToNext()) {
bday = cur
.getString(cur
.getColumnIndex(ContactsContract.CommonDataKinds.Event.START_DATE));
Log.v("Birthday", bday);
}
cur.close();
return bday;
}
週年紀念日的情況也是如此,這裏是它的代碼。在某些情況下,不會添加週年紀念,但它仍會顯示來自其他聯繫人的數據。
private String getAnnv(String id) {
String annv = null;
ContentResolver cr = getContentResolver();
Uri uri = ContactsContract.Data.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Event.CONTACT_ID,
ContactsContract.CommonDataKinds.Event.START_DATE };
String where = ContactsContract.Data.MIMETYPE + "= ? AND "
+ ContactsContract.CommonDataKinds.Event.TYPE + "="
+ ContactsContract.CommonDataKinds.Event.TYPE_ANNIVERSARY;
String[] selectionArgs = new String[] { ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE };
// String sortOrder = null;
Cursor cur = cr.query(uri, projection, where, selectionArgs, null);
while (cur.moveToNext()) {
annv = cur
.getString(cur
.getColumnIndex(ContactsContract.CommonDataKinds.Event.START_DATE));
Log.v("Anniversary", annv);
}
cur.close();
return annv;
}
我認爲這將是對你非常有用 http://stackoverflow.com/questions/2482631/how-to-get-contacts-in-order-of-their-即將到來的生日 – Ramkumar 2012-07-30 13:23:14
其實在一些問題中,我沒有找到解決方案,所以沒有接受答案。 – Beenal 2012-08-01 09:35:20
我需要和你談談@Beenal。我需要聯繫人列表中的相同出生日期和週年日期。你有這個解決方案?請儘可能儘快回覆。如果你有解決方案,那麼請儘快給我代碼。它的緊急請幫助我。 – 2016-07-23 11:51:24