Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 要以编程方式在联系人中创建新组吗_Android_Android Contacts - Fatal编程技术网

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

Android 要以编程方式在联系人中创建新组吗,android,android-contacts,Android,Android Contacts,我想建立一个新的联络小组。我可以查询组并显示所有组名,但我无法在android中创建组我尝试了创建联系人方法,但没有创建 ContentResolver cr = this.getContentResolver(); groupValues = new ContentValues(); Log.e("Group","start"); groupValues.put(android.provider.Contacts.GroupMembership.GROUP_ID, 4)

我想建立一个新的联络小组。我可以查询组并显示所有组名,但我无法在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());
    }

}
private void createGroup(){
ArrayList ops=新的ArrayList();
添加操作(ContentProviderOperation
.newInsert(contacts contract.Groups.CONTENT\u URI)
.withValue(contacts contract.Groups.TITLE,“SRI”).build();
试一试{
getContentResolver().applyBatch(contacts contract.AUTHORITY,ops);
}捕获(例外e){
Log.e(“Error”,e.toString());
}
}

谢谢

为什么要用
groupValues.put(android.provider.Contacts.GroupMembership.group\u ID,4)指定组ID
它的androids作业用于确定组ID,您无法指定它,因为您不知道该ID是否已被使用。

adithi的答案对于Android 4.2.2来说已经足够了,其中联系人管理器应用程序的名称是“联系人”,但由该代码创建的组不会显示在Android 4.4.6上,其中联系人管理器应用程序的名称为“People”

在插入时添加帐户类型/名称信息后,该组将显示

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, ops);

    } catch (Exception e) {
        Log.e("Error", e.toString());
    }
}
private void createGroup(){
ArrayList ops=新的ArrayList();
添加操作(ContentProviderOperation
.newInsert(contacts contract.Groups.CONTENT\u URI)
.有价值(
Contacts contract.Groups.TITLE,
常量。CC_联系人_组_标题)
.有价值(
联系人contract.Groups.ACCOUNT\u类型,
常量。抄送\联系人\组\帐户\类型)
.有价值(
Contacts contract.Groups.ACCOUNT\u NAME,
常量。抄送\联系人\组\帐户\名称)
.build());
试一试{
getContentResolver().applyBatch(contacts contract.AUTHORITY,ops);
}捕获(例外e){
Log.e(“Error”,e.toString());
}
}

默认情况下,组1中已有3个选项。朋友2。家庭,3。同事。现在我的问题是如何将联系人添加到这些选项中的特定组。