如何以编程方式将出生日期的联系人添加到设备联系人中?
How to Add a contact with Date of Birth into device contacts programmatically?
我正在使用以下代码插入联系人,但我无法找到 Date_Of_Birth 字段来添加它。
ContentValues values = new ContentValues();
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Phone.NUMBER, "0123456789");
values.put(Phone.TYPE, Phone.TYPE_CUSTOM);
values.put(Phone.LABEL, "Ravi");
Uri dataUri = getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);
我认为你需要:ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY
但要小心:一些 OEM 确实提供了他们自己的 ContactProvider
...
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Event.TYPE, ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY);
values.put(ContactsContract.CommonDataKinds.Event.START_DATE, birthdayStartDate);
Uri dataUri = getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactID)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Event.START_DATE, "26-05-2015")
.withValue(ContactsContract.CommonDataKinds.Event.TYPE, ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY)
.build());
据我所知,我们可以添加上述格式的生日,但前提是设备支持。由于很多设备在默认设备联系人中没有生日列。当您以编程方式创建联系人时,它是在设备上创建的,生日字段不可用。它稍后会与 google 帐户同步,并且生日字段会显示。
我发布这个是因为它有时可能对某人有用。
我正在使用以下代码插入联系人,但我无法找到 Date_Of_Birth 字段来添加它。
ContentValues values = new ContentValues();
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Phone.NUMBER, "0123456789");
values.put(Phone.TYPE, Phone.TYPE_CUSTOM);
values.put(Phone.LABEL, "Ravi");
Uri dataUri = getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);
我认为你需要:ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY
但要小心:一些 OEM 确实提供了他们自己的 ContactProvider
...
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Event.TYPE, ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY);
values.put(ContactsContract.CommonDataKinds.Event.START_DATE, birthdayStartDate);
Uri dataUri = getContentResolver().insert(android.provider.ContactsContract.Data.CONTENT_URI, values);
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactID)
.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Event.START_DATE, "26-05-2015")
.withValue(ContactsContract.CommonDataKinds.Event.TYPE, ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY)
.build());
据我所知,我们可以添加上述格式的生日,但前提是设备支持。由于很多设备在默认设备联系人中没有生日列。当您以编程方式创建联系人时,它是在设备上创建的,生日字段不可用。它稍后会与 google 帐户同步,并且生日字段会显示。 我发布这个是因为它有时可能对某人有用。