Sie müssen nur hinzufügen zusätzliche Zeilen in der ContactsContract.Data
Tabelle beim Einfügen eines Kontakts. Siehe „contacts.xml Struktur“ in den documentation:
Das <ContactsDataKind>
Element steuert die Anzeige Ihrer benutzerdefinierte Datenzeilen der Anwendung in der Benutzeroberfläche der Kontakte-Anwendung. Es hat die folgende Syntax:
<ContactsDataKind
android:mimeType="MIMEtype"
android:icon="icon_resources"
android:summaryColumn="column_name"
android:detailColumn="column_name">
Für jeden von ihnen, der Kontakt App ContactDetailFragment fügt eine DataViewEntry
. Die Listeneinträge dienen als Daten für einen Adapter, der zum Erstellen der UI für Kontaktdetails verwendet wird. Wenn ein Eintrag mit einem Intent angeklickt wird, wird startActivity()
aufgerufen. Diese Absicht wird aus dem MIME-Typ des Datenelements und Uri erstellt.
entry.intent = new Intent(Intent.ACTION_VIEW);
entry.intent.setDataAndType(entry.uri, entry.mimetype);
Zum Beispiel die G + App hat folgende es_contacts.xml
:
<ContactsDataKind android:summaryColumn="data2" android:detailColumn="data3"
Und schafft die Zeilen wie folgt aus:
ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference("raw_contact_id", i1)
.withValue("mimetype", "vnd.android.cursor.item/vnd.googleplus.profile.comm")
.withValue("data4", Integer.valueOf(14))
.withValue("data5", "hangout")
.withValue("data3", context.getString(R.string.start_hangout_action_label));
ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference("raw_contact_id", i1)
.withValue("mimetype", "vnd.android.cursor.item/vnd.googleplus.profile")
.withValue("data4", Integer.valueOf(20))
.withValue("data5", "addtocircle")
.withValue("data3", context.getString(R.string.add_to_circle_action_label));
Es mir nicht klar ist, was du bist versuchen zu tun. Möchten Sie, dass Ihre App in dem Menü angezeigt wird, das in Kontakten/Personen angezeigt wird, oder mehrere Aktionsoptionen in Ihrer App haben? Auf meinem Telefon kann ich einen Bildschirm wie auf dem Screenshot sehen, mit dem du verlinkt hast, indem du in die Telefon-App gehst und die Menü-Taste (drei vertikal ausgerichtete Punkte) auf die Kachel einer Person dort drückst, die aufleuchtet ein Dialog mit den Kontaktinformationen der Person und dann Berühren des Kontaktsymbols in diesem Dialog. Zu diesem Zeitpunkt bin ich mir nicht sicher, ob ich noch in der Telefon-App oder in der Kontakte-/Personen-App bin. – hBrent