Name, Vorname und Telefonnummern aus Kontakten

  • Hallo,


    ich versuche seit 2 Tagen krampfhaft Name, Vorname und Telefonnummern(n) aus den Kontakten auszulesen.
    Hab dazu ein kleines Tutorial durchgelesen und dann nachgebaut.


    Dabei ist das hier rausgekommen:



    Eugentlich sollte das doch funktionieren und in "familyName" sollte doch der eigentlich der Famielienname stehen oder ??


    Funktioniert leider nicht.
    Der String bleibt ler, null.


    Was ist denn da flasch?


    Matthias

  • Hallo,


    hab mich eben angemeldet und hab jetzt mal eben eine kleine Activity erstellt damit das ganze besser im Zusammenhang gesehen werden kann.
    Ich hoffe das man so besser helfen kann.


    Hier die Activity



    Das sollte eigentlich für die Profies hier selbsterklärend sein.


    Ich hab 3 Kontakte angelegt mit Name, Vorname und Telefon.
    Nun möchte ich eigentlich nur name, vorname und telefonnummern wieder ausgegeben haben.


    Irgendwie gehts aber nicht.
    Danke Euch
    Matthias

  • Hallo,


    ich hab mal das Log hier eingefügt, so ist es sicher leichter zu erklären:



    Blöderweise ist es nicht einfach zu erklären.


    Zitat


    01-20 17:43:37.572: VERBOSE/ContactPicker(345): contactId 3
    01-20 17:43:37.692: VERBOSE/ContactPicker(345): DisplayName: 017-085-41236
    01-20 17:43:37.692: VERBOSE/ContactPicker(345): FamilyName: null
    01-20 17:43:37.692: VERBOSE/ContactPicker(345): GivenName: 2
    01-20 17:43:37.713: VERBOSE/ContactPicker(345): MiddleName: null


    DisplayName ist ganz sicher nicht 017085....und FamilyName ist nicht null.


    Der Kontakt hat einen ordentlichen Namen, Vornamen,eine Mobilfunknummer und eine Festnetz Nummer.



    Mit der Schleife
    01-20 17:43:37.812: VERBOSE/ContactPicker(345): Schleife...


    wollte ich mir mal die ColumnNamen ausgeben lassen und das mit dem SDK vergleichen, aber selbst das stuimmt mit den SDK Columns nicht überein.


    Was mach ich denn da falsch?
    Ich brauch doch nur Name, Vorname und die Telefonnummern von einem Kontakt, kann doch nicht so schwer sein??



    Matthias

  • Hallo,


    da ich es immer noch nicht herausbekommen habe habe ich es nochmal vereinfacht versucht und
    eine einfache Procedure geschrieben in der ich ( hard ) einen Kontakt per "contactId" abfrage. ( Die Kontakt ID gibt es )


    Als Kontakt ist folgendes eingetragen


    FirstName : Vorname
    LastName: Nachname


    Telefon:


    Home: 111
    Mobil: 222
    Work: 333


    Hier die Procedure dazu:



    und hier das Log dazu:



    Also ich weiß echt nicht mehr was ich da falsch mache ??


    Bitte nochmal um eure Hilfe.


    Danke
    Matthias

  • Vll. könntest du ja mal gucken, was passiert, wenn du eine schleife machst und dann alle Columns durchgehst, bis getColumnCount() erreicht ist.
    Würde da nämlich auf eine falsche Columnnr. tippen und wenn es das nicht sein sollte, dann könntest du dem Fehler wenigstens etwas weiter auf die Spur kommen.

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Und warum nimmst du dann nicht einfach die jeweiligen Indexe nicht?
    Denn die Indexdaten müssten ja stimmen, oder?

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Ich meine damit, dass du statt "c.getColumnIndex(ContactsContract.CommonDataKinds.Phone.LABEL)" einfach den entsprechend ermittelten Index nimmst.
    Also z.B. für den Anzeigenamen den Index 32.
    Wenn es bei jedem gleich ist, müsste es ja funktionieren ;)

    MfG,
    Christopher


    Eine gewisses Maß an Freundlichkeit kann man auch von Menschen im Internet erwarten.
    Das Forum basiert komplett auf der Freiwilligkeit ihrer Nutzer und diese sollen sich wohlfühlen! Daher seid bitte freundlich. Danke

  • Hallo,


    nein, daran lag es nicht. Habs aber herausgefunden.
    Es lag an den Cursor Parametern:


    Code
    Cursor c = getContentResolver().query(
    				ContactsContract.Data.CONTENT_URI,          
    				null, //new String[] {ContactsContract.Data._ID, Phone.NUMBER, Phone.TYPE, Phone.LABEL, ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME},          
    				ContactsContract.Data.CONTACT_ID + "=?" + " AND "+ContactsContract.Data.MIMETYPE"; // + "='" + Phone.CONTENT_ITEM_TYPE "'",
    				new String[] {String.valueOf(contactId)}, 
    				null);


    Man muss den MIME_TYPE mit angeben:


    ContactsContract.Data.CONTACT_ID + "=?" + " AND "+ ContactsContract.Data.MIMETYPE";


    Matthias

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!