5

新しい連絡先グループを作成したい。グループをクエリしてすべてのグループ名を表示することはできますが、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);
4

3 に答える 3

14

私は答えを見つけました。私は2つの方法で見つけましたが、どちらが正しいか、または最良の使用方法かわかりません。私はここでそれらを共有しています。

連絡先を追加するような簡単な方法、

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());
    }

}

ありがとう

于 2011-06-02T05:05:18.440 に答える
0

groupValues.put(android.provider.Contacts.GroupMembership.GROUP_ID, 4);androidsジョブでグループIDを指定してグループIDを決定するのはなぜですか。このIDがすでに取得されているかどうかわからないため、指定できません。

于 2013-08-05T06:58:55.357 に答える
0

連絡先管理アプリケーションの名前が「連絡先」であるAndroid4.2.2の場合、adithiの回答で十分ですが、そのコードによって作成されたグループは、連絡先管理アプリケーションの名前が「人」であるAndroid4.4,6では表示されません。 。

挿入時にアカウントの種類/名前情報を追加すると、グループが表示されます。

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());
    }
}
于 2014-09-25T20:01:31.550 に答える