【发布时间】:2017-02-23 03:45:30
【问题描述】:
我正在尝试在 ContactsContract 中创建用户配置文件...因为没有,我需要一个用于测试。我没有真正的 Android 设备,只有用于测试的 AVD 模拟器。
这是我正在使用的代码块:
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 标志设置条目。
您可以从应用程序创建用户个人资料吗?如果是这样,关于为什么这不起作用的任何想法?
非常感谢! 斯科特
【问题讨论】:
-
我正在努力解决同样的问题。当不存在时,我似乎无法添加个人资料联系人! (请参阅我的问题:stackoverflow.com/questions/33981594/…)你是如何解决这个问题的?
标签: android