我正在使用下面的代码来检索事件和联系人的光标,并且对于指定年份的事件来说它工作得很好。不幸的是,此查询不返回仅设置日期和月份的事件。
我已经在Google 联系人中为一些联系人生日设置了这些日期,我想知道是否需要使用 RawContacts 而不是 ContactsContract 来获取这些值?
更新:似乎检索到没有年份输入手机的事件。只有通过http://www.google.com/contacts添加的事件不会被检索。我可以在联系人应用程序中看到这些事件 - 显示为类似--05-23
.
String[] projection = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
Event.CONTACT_ID,
Event.START_DATE,
Event.TYPE
};
Cursor c = mContext.getContentResolver().query(
ContactsContract.Data.CONTENT_URI,
projection,
ContactsContract.Data.MIMETYPE + "= ?",
new String[] { Event.CONTENT_ITEM_TYPE },
Event.START_DATE);
c.moveToFirst();
int nameIndex = c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
int dateIndex = c.getColumnIndex(Event.START_DATE);
String name, date;
while (c.moveToNext()) {
name = c.getString(nameIndex);
date = c.getString(dateIndex);
Log.d(TAG, "Event for " + name + " is " + date);
}
c.close();