Wenn ein Android-Telefon einen Anruf empfängt, überprüft es automatisch, ob der Anruf in seiner eigenen Kontaktdatenbank vorhanden ist. Ich habe mich gefragt, ob es eine einfache Möglichkeit gibt, auf diese Informationen zuzugreifen. Ich habe eine PhoneStateListener
, die bestimmte Aktionen während eines Rufzustands ausführt, und ich möchte überprüfen, ob der eingehende Anrufer in der Kontaktliste ist.Gibt es eine einfache Möglichkeit zu überprüfen, ob ein eingehender Anrufer ein Kontakt in Android ist?
Gibt es eine Möglichkeit, dies zu tun, ohne die Kontakte ContentProvider
zu durchlaufen?
Darf ich fragen, warum Sie nicht Willst du es über den Content-Provider machen? Abhören für einen eingehenden Anruf, Abrufen der Nummer und dann überprüfen, ob es in der Content-Provider scheint der logische Weg, um es zu tun? –
Sie haben Recht, es wäre ein guter Weg zu gehen, aber ich möchte es wegen Komplikationen in Bezug auf den Telefon "Typ" vermeiden. Da ein Benutzer die Telefonnummer eines Kontakts in eine beliebige Kategorie (z. B. "Arbeit", "Andere" oder sogar eine benutzerdefinierte Telefonnummer) eingeben kann, wird es hässlich, alle Felder zu durchsuchen, um eine Übereinstimmung zu finden. Außerdem müssen die Nummern standardisiert formatiert werden. Fehle ich etwas sehr einfaches? Wenn nicht, würde ich mich lieber von diesem Chaos fernhalten. – gggritso
Der Code von Christopher unten sollte gut funktionieren, ich verwende etwas ähnliches, um eine ausgehende Nummer zu überprüfen, und es prüft alle Felder ohne Verzögerung in der Verarbeitung –