微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

要以编程方式在联系人中创建新组

如何解决要以编程方式在联系人中创建新组

| 我想创建一个新的联系人组。我可以查询群组并显示所有群组名称,但是我无法在尝试创建联系人方法但未创建的Android系统中创建群组...
ContentResolver cr = this.getContentResolver();
    groupValues = new ContentValues();
    Log.e(\"Group\",\"start\");
    groupValues.put(android.provider.Contacts.GroupMembership.GROUP_ID,4);
    groupValues.put(android.provider.Contacts.GroupMembership.NAME,\"Sriseshaa\");
    groupValues.put(android.provider.Contacts.GroupMembership.PERSON_ID,1);

    cr.insert(android.provider.Contacts.GroupMembership.CONTENT_URI,groupValues);
    

解决方法

我找到了答案。我发现有两种方式,但我不知道哪种是正确的或最佳的使用方式。我在这里分享这些。 简单的方法,例如添加联系人,
ContentValues groupValues;
create group()
{
 ContentResolver cr = this.getContentResolver();
 groupValues = new ContentValues();
 groupValues.put(ContactsContract.Groups.TITLE,\"MyContactGroup\");
 cr.insert(ContactsContract.Groups.CONTENT_URI,groupValues);
}
使用ContentProviderOperation的另一种方法
 private void createGroup() {
    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();

    ops.add(ContentProviderOperation
            .newInsert(ContactsContract.Groups.CONTENT_URI)
            .withValue(ContactsContract.Groups.TITLE,\"SRI\").build());
    try {

        getContentResolver().applyBatch(ContactsContract.AUTHORITY,ops);

    } catch (Exception e) {
        Log.e(\"Error\",e.toString());
    }

}
谢谢     ,为什么用
groupValues.put(android.provider.Contacts.GroupMembership.GROUP_ID,4);
指定组ID,它的androids作业确定组ID,所以不能指定它,因为您不知道此ID是否已被使用。     ,adithi的答案对于Android 4.2.2而言已足够,在Android 4.2.2中,Contacts Manager应用程序的名称为\“ Contacts \”,但是由该代码创建的组将不会在Android 4.4,6上显示,其中Contacts Manager的名称应用程序是“人”。 在插入时,添加帐户类型/名称信息后,该组将出现。
private void createGroup() {

    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();

        ops.add(ContentProviderOperation
                .newInsert(ContactsContract.Groups.CONTENT_URI)
                .withValue(
                        ContactsContract.Groups.TITLE,Constants.CC_CONTACT_GROUP_TITLE)
                .withValue(
                        ContactsContract.Groups.ACCOUNT_TYPE,Constants.CC_CONTACT_GROUP_ACCOUNT_TYPE)
                .withValue(
                        ContactsContract.Groups.ACCOUNT_NAME,Constants.CC_CONTACT_GROUP_ACCOUNT_NAME)
                .build());
    try {

        getContentResolver().applyBatch(ContactsContract.AUTHORITY,e.toString());
    }
}
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。