我想一个生日事件添加到联系人,但显示在联系人应用的接触时,事件不会显示出来 。 当进入接触的“编辑”模式下,事件不会显示出来,但是没有指定日期(详见附截图)仿佛格式错误。
当在源码浏览器检查contacts2.db,似乎日期的数据格式就好了,像其他事件/生日是正确显示(见附表图像。第一行是通过应用程序手动输入的生日,第二行,是由我的应用程序添加和不显示)
这里是我使用从$ ANDROID_HOME SDK后面的SampleSyncAdapter的代码,
public ContactOperations addBirthday(Date date) {
mValues.clear();
if(date!=null) {
mValues.put(ContactsContract.CommonDataKinds.Event.TYPE, ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY);
mValues.put(ContactsContract.CommonDataKinds.Event.START_DATE, BIRTHDATE_FORMATTER.format(date));
mValues.put(ContactsContract.CommonDataKinds.Event.MIMETYPE, ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE);
addInsertOp();
}
return this;
}
private void addInsertOp() {
if (!mIsNewContact) {
mValues.put(ContactsContract.CommonDataKinds.Phone.RAW_CONTACT_ID, mRawContactId);
}
ContentProviderOperation.Builder builder =
newInsertCpo(ContactsContract.Data.CONTENT_URI, mIsSyncOperation, mIsYieldAllowed);
builder.withValues(mValues);
if (mIsNewContact) {
builder.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, mBackReference);
}
mIsYieldAllowed = false;
mBatchOperation.add(builder.build());
}