我正在尝试在 ContactsContract 中创建用户配置文件...因为没有,我需要一个用于测试。我没有真实的 Android 设备,只有 AVD Emulator 用于测试。
这是我正在使用的代码块:
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, null)
.withValue(RawContacts.ACCOUNT_NAME, null)
.build());
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, 0)
.withValue(Data.MIMETYPE, Profile.CONTENT_RAW_CONTACTS_URI)
.withValue(Profile.IS_USER_PROFILE, 1)
.build());
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, 0)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.DISPLAY_NAME, name)
.build());
this.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
如果您删除使该条目成为用户配置文件的行,它可以正常工作(即,将插入名称)。但是,我不知道如何使用 IS_USER_PROFILE 标志设置条目。
您可以从应用程序创建用户配置文件吗?如果是这样,关于为什么这不起作用的任何想法?
非常感谢!斯科特