android – 如何在没有一年的情况下检索从Google通讯录同步的联系事件?

前端之家收集整理的这篇文章主要介绍了android – 如何在没有一年的情况下检索从Google通讯录同步的联系事件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用下面的代码来检索事件和联系人的游标,它对于指定年份的事件工作得很好.遗憾的是,此查询不会返回仅设置日期和月份的事件.

我已经在Google Contacts中设置了一些联系生日的日期,我想知道我是否需要使用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();

解决方法

我正在运行Nexus S(2.3.4)并且我使用了您的确切代码,我打印出所有联系人,包括没有年份的联系人.
07-19 17:08:36.847: DEBUG/test(24646): Event for Warren Upton is --12-01
07-19 17:08:36.851: DEBUG/test(24646): Event for Marion Atkins is 1934-11-24

您能否提供有关如何重现问题的更多详细信息?

猜你在找的Android相关文章