Kontaktfoto und Nummer

  • Hallo,


    ich bräuchte einen Tipp, wie ich am besten Kontaktfoto und Nummern anzeigen lassen kann.


    Eigentlich brauche ich eine Liste, die ganz genauso ist wie in der Kontakte App. Nur mit dem Zusatz, dass ich da Kontakte bzw. ganze Gruppen auswählen kann, und beim Auswählen soll die ID (bzw. der Lookup_key) in meine SQL DB geschrieben werden.


    Wenn das nicht funktioniert wird meine App ein totaler Reinfall, denn wegen schlechter Bedienbarkeit wird sie dann keiner benutzen wollen. Ich selbst wohl nicht mal.



    Kennt da jemand gute Informationsquellen, die ich mir ansehen könnte?
    Bei der App "Handsent SMS" funktioniert das mit den Gruppen nicht ganz so gut. Scheint dass es wohl nicht ganz so einfach ist(?)

    Bei Unklarheiten, halten Sie Ihren Kopf kurz in eine Schüssel voll klarem Wasser, dann wirds etwas klarer. Danke ;)


    Gruß Andi ---- Das Huhn oder das Ei zuerst? ;)
    Funtik -- G+

  • Hallo Funtik,


    dafür kannst du den ContactsContract Content Provider nutzen:


    Java
    getContentResolver().query(
        Contacts.CONTENT_Uri,   
        mProjection,                        
        mSelectionClause                    
        mSelectionArgs,                    
        mSortOrder);


    Pass beim importieren auf, dass du android.provider.ContactsContract verwendest und NICHT android.provider.Contacts.


    Um die Bilder zu erhalten, kannst du die Methode openContactPhotoInputStream(ContentResolver cr, Uri contactUri) nutzen.


    Bsp:


    Java
    InputStream photo_stream = ContactsContract.Contacts.openContactPhotoInputStream(getContentResolver(),my_contact_Uri);            
    BufferedInputStream inputStream = new BufferedInputStream(photo_stream);
    Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
    //Tada du hast dein Bild ;)



    Für weitere Informationen solltest du dir die Dokumentation ansehen:


    http://developer.android.com/r…der/ContactsContract.html
    http://developer.android.com/r…ract.ContactsColumns.html

  • Danke dir. Das mit dem Bild klappt super :) muss ich allerdings wohl in nen hintergrund Thread machen oder so... habe mal gelesen dass sowas geht, damit die Liste beim scrollen nicht so hakt.


    Mit ContactsContract Provider habe ich ja bisher auch alles gemacht. Nur hatte gehofft, dass es eine fertige Klasse gibt, auf die ich zurückgreifen könnte.


    Aber dann sei mir damit erstmal geholfen. Danke dir! :)

    Bei Unklarheiten, halten Sie Ihren Kopf kurz in eine Schüssel voll klarem Wasser, dann wirds etwas klarer. Danke ;)


    Gruß Andi ---- Das Huhn oder das Ei zuerst? ;)
    Funtik -- G+

  • Zitat

    muss ich allerdings wohl in nen hintergrund Thread machen oder so... habe mal gelesen dass sowas geht, damit die Liste beim scrollen nicht so hakt.


    Schau dir dazu mal die speziell erstellten Loader an. Die Loader helfen dir dabei die Daten im Hintergrund zu verarbeiten. Mit dem LoaderManager stehen dir weitere Callbacks zur Verfügung (Willst ja schliesslich etwas mit den Daten machen ^^)


    *Muss mich hiermit auch noch detaillierter auseinandersetzen ;)

  • Ja das hab ich mir schonmal angesehen und ist auch sehr interessant... aber habs nicht weiter vertieft, weil da steht, dass es erst ab API 11 funktioniert... ich möchte meine App jedoch gerne für API 7 verfügbar machen

    Bei Unklarheiten, halten Sie Ihren Kopf kurz in eine Schüssel voll klarem Wasser, dann wirds etwas klarer. Danke ;)


    Gruß Andi ---- Das Huhn oder das Ei zuerst? ;)
    Funtik -- G+

  • Ja.. das ist mein erstes Java/Android Projekt... ich fürchte mich noch etwas vor solchen Gebieten, da ich die Grundlagen vom normalen noch nicht mal drauf hab :P


    Mal ne andere Frage zum ContactsContract Provider...


    Momentan speichere ich den lookup_key für jeden Kontakt, und nicht seine _ID. Der lookup_key ist allerdings ein String und deswegen dauern Abfragen etwas länger.


    Was würdet ihr empfehlen, den Lookup_key oder doch besser die _ID zu speichern?
    Das problem bei der ID ist, dass sie sich für nen Kontakt schnell ändern kann. Schon wenn man zwei Kontakteinträge miteinander verknüpft, hat dieser dann schon ne neue ID. Der Lookup_key ist da ja eindeutiger. Oder doch besser beides Speichern?
    Wie macht ihr das so?

    Bei Unklarheiten, halten Sie Ihren Kopf kurz in eine Schüssel voll klarem Wasser, dann wirds etwas klarer. Danke ;)


    Gruß Andi ---- Das Huhn oder das Ei zuerst? ;)
    Funtik -- G+

  • Ach mach dir selbst nicht so nen Druck. Diese Sachen brauchst du nicht zu fürchten. So bleibt das Lernlevel etwas niedriger, also einfach selbstbewusst dran gehen und ggf. die Doku lesen. Steht ja verdammt viel zu dem Thema drin ;)


    Ich selbst nutze den LOOKUP_KEY. Von der Performance / Geschwindigkeit spürt man im normalfall eh keinen unterschied (Sehe ich zumindest so ;) ).


    Zitat

    Even If this happens, the content URI CONTENT_LOOKUP_URI combined with contact's LOOKUP_KEY will still point to the contact row, so you can use LOOKUP_KEY to maintain links to "favorite" contacts, and so forth.


    Weitgehendere Informationen findest du hier:


    http://developer.android.com/g…rs/contacts-provider.html

Jetzt mitmachen!

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