gpt4 book ai didi

Android 应用程序 - 如何获取联系人的生日

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:00:01 25 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,我需要将每个联系人的生日与当前日期相匹配,如果是,则处理一些业务逻辑,这需要完整的联系方式。

我找到了单独读取联系人生日或联系人本身的方法,但对如何将两者结合起来感到困惑。有人可以提供一些指导吗?

谢谢

最佳答案

在网上看了一些之后找到了答案。必须这样做的方法是:

  • 获取联系人列表
  • 对于每个联系人,获取contactId
  • 使用contactid获取生日

以下是代码 fragment :

ContentResolver cr = getContentResolver(); //getContnetResolver()
String[] projection = new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME };

Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, projection, null, null,
ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC");

while (cur.moveToNext()) {

Map<String, String> contactInfoMap = new HashMap<String, String>();
String contactId = cur.getString(cur.getColumnIndex(ContactsContract.Data._ID));
String displayName = cur.getString(cur.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));

String columns[] = {
ContactsContract.CommonDataKinds.Event.START_DATE,
ContactsContract.CommonDataKinds.Event.TYPE,
ContactsContract.CommonDataKinds.Event.MIMETYPE,
};

String where = Event.TYPE + "=" + Event.TYPE_BIRTHDAY +
" and " + Event.MIMETYPE + " = '" + Event.CONTENT_ITEM_TYPE + "' and " + ContactsContract.Data.CONTACT_ID + " = " + contactId;

String[] selectionArgs = null;
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME;

Cursor birthdayCur = cr.query(ContactsContract.Data.CONTENT_URI, columns, where, selectionArgs, sortOrder);
if (birthdayCur.getCount() > 0) {
while (birthdayCur.moveToNext()) {
String birthday = birthdayCur.getString(birthdayCur.getColumnIndex(ContactsContract.CommonDataKinds.Event.START_DATE));
}
}
birthdayCur.close();

}

cur.close();

关于Android 应用程序 - 如何获取联系人的生日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10697279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com