連絡グループを連絡先マネージャーのサンプルアプリに入れるにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4462778

質問

Android SDKからContact Managerサンプルアプリを実行しています。 Gmailアカウントに連絡先を追加すると、「目に見えない連絡先」として追加されます。これは、どの「グループ」に割り当てられるべきかを連絡先に伝えていないからだと思います。私は数日間インターネットを見回してきましたが、手ぶらで出てきました。

私が本当にやりたいのは、選択したGmailアカウント内の連絡先グループに連絡先を選択した連絡先アカウントに連絡先を追加することです。そのため、連絡先の情報がユーザーの連絡先に表示されます。

役に立ちましたか?

解決

どのバージョンのAndroidをターゲットにしていますか?もちろん、連絡先APIが2.xで根本的に変化したことを知っています...

目に見えない連絡先のこの正確な問題にぶつかりましたが、1.xでのみ。解決策は、組み込みの「My Contacts」グループに追加することであることがわかりました。

// Add to the My Contacts group
ContentValues values = new ContentValues();
values.put(GroupMembership.PERSON_ID, contact.mAndroidId); 
values.put(GroupMembership.GROUP_ID, 1); // 1 is always the ID of the built-in "My Contacts" group 
activity.getContentResolver().insert(GroupMembership.CONTENT_URI,values);

私の連絡先ではなく特定のユーザー定義グループに追加したい場合は、正しいgroup_idを釣る必要があります Contacts.Groups テーブル。

他のヒント

新しいContactScontract APIで動作させるには、これをContentSprovideroperationリストに追加できます。

ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
            .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
            .withValue(ContactsContract.Data.MIMETYPE,
                    ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE)
            .withValue(ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID, 1)
            .build());
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top