2017-01-07 1 views
3

WhatsApp kürzlich die Anruffunktion hinzugefügt. Zuvor gab es nur eine Option beim Anzeigen eines Kontakts, nämlich den Kontakt zu melden. Jetzt gibt es die Möglichkeit, einen Kontakt zu melden oder anzurufen. Hat WhatsApp diesen Eintrag dem ContactsContract hinzugefügt oder hat Google die Kontakte-App für WhatsApp modifiziert? Ich versuche, eine benutzerdefinierte Kontakte-App zu erstellen, aber ich verstehe nicht, wie Sie in dieser benutzerdefinierten Kontakt-App Links zu Apps erstellen.Wie kümmert sich die native Android-Kontakte-App für Absichten zu Apps, wie WhatsApp

ich diese Frage, gelesen haben

How to get contacts which are used in whatsapp or other application in android

Aber die Lösung ist nicht genug generisch. Ich möchte eine Kontaktanwendung erstellen, in der die Namen der Anwendungen nicht fest codiert sind.

Antwort

-2

Beim Erstellen der App müssen Sie die Zugriffsberechtigungen für die Kontakte anfordern. Dies wird im Manifest angefordert. Nur das. Um Ihre zweite Frage zu beantworten, sind die Anwendungen im Betriebssystem registriert, um sich um "Anrufe", "SMS", "URL", "Bild" usw. zu kümmern. Dann wenn das Betriebssystem (Android) arbeiten muss Ein Anruf beispielsweise zeigt dem Benutzer die verschiedenen Anwendungen an, die diese Aktion ausführen.

+1

Ich verstehe Berechtigungen. Ich habe nicht nach ihnen gefragt. Ich frage, wie die Kontaktanwendung eine Kenntnis von 2 verschiedenen Absichten hat, die für whatsapp relevant sind. Aufrufe in WhatsApp ist ein neues Feature, zuvor gab es nur ein WhatsApp-Symbol beim Anzeigen eines Kontakts. Wie hat whatsapp die Option für Anrufe in die Kontakte-App hinzugefügt? – Yoker

+0

https://developer.android.com/guide/topics/providers/content-provider-basics.html#Basics – Nobody

+0

Durch die Verwendung eines Inhaltsanbieters kann WhatsApp die Informationen bearbeiten, die er für andere Apps in dieser zusätzlichen Anrufinformation freigibt. Ich hoffe, dass Sie das erwartet haben – Nobody

0

Jede App kann nur angeben, welche Art von uri scheme sie behandeln können, wie sms:// oder tel://. Zur Klärung können Apps in einigen anderen Apps keinen eigenen Eintrag hinzufügen.

In Ihrem Beispiel Fall:
Der Kontakt App selbst so implementiert, dass sie alle Anwendungen auflisten, die sms:// oder tel:// Art von uri scheme verarbeiten kann. Da die ältere Version von WhatsApp nur sms:// URI-Schema behandeln kann, deshalb Kontakt App nur SMS/Nachrichtenoption auflisten.
Auch mit Anruffunktion in WhatsApp haben sie Unterstützung für die Handhabung tel:// URI-Schema hinzugefügt, deshalb Contact App zeigt auch die Anrufoption.

+0

Wie weiß die Kontakte-App, ob die Person die App installiert hat? Whatsapp-Option wird nur angezeigt, wenn der Kontakt whatsapp hat. – Yoker

1

Eine Android-App kann in ihrem Manifest ankündigen, dass sie eine implizite Absicht für eine bestimmte Aktion behandelt (siehe Receiving an implicit intent). In diesem Fall ist ein dial action.

Und auf Ihre praktische Frage - Sie können die PackageManager-query verwenden, die Aktivitäten eine Absicht (in diesem Fall eine Absicht mit ACTION_DIAL Aktion) verarbeiten kann, und die Packagemanager verwenden, um ihren Namen, Symbol, etc. zu erhalten

In WhatsApp-Fall möchten Sie wissen, welche Kontakte WhatsApp-Benutzer sind, aber WhatsApp hat keine API oder einen eigenen ContentProvider. Diese 2014 blog post solution könnte noch gültig sein, nicht überprüft haben.

Verwandte Themen