Erhalten Sie den Vor- und Nachnamen eines Kontakts und nicht den einzelnen Anzeigenamen?

8

Ich arbeite derzeit mit dem Inhaltsanbieter für Android-Kontakte und kann derzeit mit dem folgenden Code auf den vollständigen Anzeigenamen eines Kontakts ohne Probleme zugreifen:

%Vor%

Wie auch immer, ich möchte sowohl den ersten als auch den letzten Namen der Kontakte getrennt bekommen. Ich habe versucht, den StructuredName zu verwenden, um das zu bekommen, aber ich kann es nicht funktionieren lassen.

Kann mir jemand in die richtige Richtung zeigen, wie man den StructuredName richtig benutzt, um den Namen in First und Last zu teilen?

UPDATE:

Nach dem Rat von hovanessyan habe ich folgendes versucht:

%Vor%

Die Verwendung der PROJEKTION verursacht jedoch einen Absturz wie folgt:

%Vor%

Wenn ich die PROJEKTION entferne, bekomme ich alle Ergebnisse ausgedruckt, aber viele davon enthalten NULL.

Zum Beispiel:

%Vor%

Kann jemand sehen, was ich falsch mache, dass meine PROJEKTION nicht funktioniert?

WEITERES UPDATE:

Ich habe die Probleme mit meiner PROJECTION behoben, aber jetzt habe ich ein Problem, bei dem der DATA-Inhaltsanbieter mich mit allen Nulldaten versorgt und in meinem Code NULL-Zeigerausnahmen verursacht.

Eine Cursor-Zahl von ContactsContract.Contacts gibt mir zum Beispiel 115 zurück, aber die Verwendung der DATA-Tabelle gibt mir 464 mit den gleichen Parametern zurück, und das verursacht große Probleme in meiner App.

Hat jemand irgendwelche Ideen, warum das so ist?

    
Donal Rafferty 08.12.2011, 13:43
quelle

3 Antworten

13

Sehen Sie sich die Klasse ContactsContract.CommonDataKinds.StructuredName an. Sie haben dort alle benötigten Spalten und Sie können wahrscheinlich Folgendes tun:

%Vor%     
hovanessyan 08.12.2011, 13:55
quelle
2

Hier ist eine allgemeine Funktion zum Abrufen von Benutzerdaten aus ContactsContract.Data table:

%Vor%     
artkoenig 24.03.2014 11:42
quelle
2
%Vor%     
user3717188 29.10.2014 11:17
quelle