2010-12-16 6 views
2

Android SDKからContact Managerサンプルアプリを実行しています。 Gmailアカウントに連絡先を追加すると、その連絡先は「見えない連絡先」として追加されます。私はそれが割り当てられなければならない 'グループ'の連絡先を私が言っていないので、これが仮定しています。私は数日間インターネットの周りを見ていて、空手を持って来ました。Contact Managerのサンプルアプリケーションへのコンタクトグループの取得方法

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

+0

私はどこにもこの質問への答えを得ることができない理由はありますか?私は何か基本的なものを逃しているのですか、それとも良い答えはありませんか? – Chris

答えて

0

対象とするAndroidのバージョンは何ですか?あなたはもちろん、連絡先APIが2.xで根本的に変わったことに気付いています。

私はこの目に見えない連絡先の正確な問題を1.xにしか当てませんでした。私は解決策は、組み込みの「Myコンタクト」グループに追加することがわかった:

// 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テーブルの

1

が新しいContactsContract APIで動作させるために、あなたはContentProviderOperationリストにこれを追加することができます。

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()); 
関連する問題