2010-12-16 8 views
2

Ich führe die Contact Manager-Beispielanwendung vom Android SDK aus. Wenn ich einen Kontakt zu meinem Google Mail-Konto hinzufüge, wird dieser als "unsichtbarer Kontakt" hinzugefügt. Ich gehe davon aus, dass dies daran liegt, dass ich dem Kontakt nicht sage, welcher "Gruppe" er zugeordnet werden sollte. Ich habe mich ein paar Tage im Internet umgesehen und bin mit leeren Händen aufgestiegen.So erhalten Sie Kontaktgruppen in Contact Manager Sample App?

Was ich wirklich tun möchte, ist, den Kontakt zu dem Kontaktkonto, das ich auswählen und den Kontakt mit einer Kontaktgruppe innerhalb des ausgewählten Google Mail-Kontos zugeordnet hinzufügen, so dass die Kontaktdaten in den Kontakten des Benutzers angezeigt werden.

+0

Gibt es einen Grund, warum ich keine Antwort auf diese Frage überall bekommen kann? Fehle ich etwas Grundlegendes, oder gibt es keine gute Antwort? – Chris

Antwort

0

Auf welche Android-Version zielen Sie? Sie sind sich natürlich bewusst, dass sich die Kontakte-API in 2.x radikal geändert hat ...

Ich treffe genau dieses Problem der unsichtbaren Kontakte, aber nur auf 1.x. Ich fand die Lösung des eingebauten „Meine Kontakte“ Gruppe hinzugefügt wurde:

// 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); 

Wenn Sie auf eine bestimmte benutzerdefinierte Gruppe hinzufügen möchten, anstatt Meine Kontakte müssen Sie das Recht GROUP_ID heraus fischen der Contacts.Groups Tabelle.

1

Um es mit dem neuen ContactsContract-API arbeiten, können Sie dies auf die ContentProviderOperation Liste hinzu:

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