Hilfe Android 2.1 Kontakt Bilder

  • Hallo zusammen,


    Ich hab mir den PAW server runter geladen und en bischen umgebastelt ;) soweit so gut.
    Bei dem telfonbuch und den SMS werden jedoch keine kontaktbilder angezeigt.


    Bei 2.2 und 2.3 geht das wohl alles bei 1.6 soll es eigendlich auch gehen aber zeigt auch nix an.


    Script sieht so aus:


    import android.graphics.*;
    import android.graphics.Bitmap.CompressFormat;
    import android.net.Uri;
    import android.provider.Contacts.People;


    source("/sdcard/paw/html/app/auth.bsh");


    service = server.props.get("serviceContext");


    ContactID = parameters.get("ContactID");


    if(contactId != null) {
    bitmap = People.loadContactPhoto(service, Uri.parse("content://contacts/people/" + ContactID), com.android.internal.R.drawable.ic_contact_picture, null);
    bos = new ByteArrayOutputStream();
    bitmap.compress(CompressFormat.PNG, 0 /*ignored for PNG*/, bos);
    byte[] bitmapdata = bos.toByteArray();


    request.sendResponse(bitmapdata, "image/png");
    request.out.flush();
    request.out.close();


    }



    Da ich sehr unerfahren bin in sachen android programmierung und der Programmierer von dem PAW server auch nix wusste auf anhieb jetzt mal hier die frage für die profies.


    Gibt es die Möglichkeit das irgendwie ans laufen zu bekommen? hab da jetzt schon den ganzentag gemailt mit dem progger und gegooglet also jetzt bitte helft ;)

  • raus kommt nur ne png grafik das android männike da aber die bilder nicht weiß ber leider auch ned (da anfänger) wie ich das original bild angezeigt bekomme ;) der wandelt es ja in png denk ich mal

  • jap bilder sind drinne das lustige ist unter 2.2 geht es ja auf jeden fall aber se gibt ja kein update raus für das x10 mini pro ;)
    also das sit das standart bild prob is halt das ich 0 ahnung hab wie ich an die bilder drann komme mir fehlt also das prinzip.


    Ich weiß auch das ich jpg bilder hoch geladen hab also wieso dann bitmap wandelt android das so um? und wieso dann die ausgabe in png und nicht in jpg xD
    also kontakte haben bilder drinn aber bei keiner id kommt nix bei einer id auch die mit foto kommt nur das männike und ausgabe ist in png

  • Ja, man kann Grafiken ja umwandeln...bei nem jpg kannste halt nicht auf die einzelnen Pixel zugreifen, weil das komprimiert ist. Da wird halt grade erst dein JPG als Bitmap Instanz in den Speicher geladen, und diese Daten (= Bytestrewam) werden dann wiederum in ein PNG komprimiert. Versuch das Bild mal so zu laden:

    Java
    Uri contactPhotoUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
    InputStream photoDataStream = Contacts.openContactPhotoInputStream(contentResolver,contactPhotoUri);
        Bitmap photo = BitmapFactory.decodeStream(photoDataStream);


    Ansonsten könnte es auch Probleme geben, falls dein foto nicht manuell eingestellt ist, sondern von einem SNS Account (Facebook, Skype, evtl. auch Google Contacts) kommt. Bin mir nicht sicher, ob man dann auch so auf das Foto zugreifen kann (bei Google Contacts vermutlich schon).

  • ok also gibt der die bitmaps in pixeln aus und seltzt sie zusammen?
    aber eieso ist der link immer anders


    Uri contactPhotoUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
    InputStream photoDataStream = Contacts.openContactPhotoInputStream(contentResolver,contactPhotoUri);


    und original


    bitmap = People.loadContactPhoto(service, Uri.parse("content://contacts/people/"+contactId), com.android.internal.R.drawable.ic_contact_picture, null);
    bos = new ByteArrayOutputStream();
    bitmap.compress(CompressFormat.PNG, 0 /*ignored for PNG*/, bos);
    byte[] bitmapdata = bos.toByteArray();


    also dieses People.loadContactPhoto und Contacts.openContactPhotoInputStream


    also laufen tut es wohl unter 2.2 2.3 gestern auch noch mal getestet aber wieso dann ned unter 2.1 wo ist denn da der große unterschied

  • Eigentlich sollte da kein Unterschied sein. Also das Standardbild kommt sicher da her:

    Java
    bitmap = People.loadContactPhoto(service, Uri.parse("content://contacts/people/"+contactId), com.android.internal.R.drawable.ic_contact_picture, null);


    D.h. er findet gar kein Foto für die Person. Jetz könnts sein, dass die Uri nicht stimmt. Schau mal, ob du unter der URI andere Informationen auslesen kannst.


    EDIT: die Methode, so auf die Kontakte zuzugreifen ist auch deprecated. Such mal nach beispielen, die ContactsContract benutzen.

  • loool der is gut ich bin ein newbee xD java hab ich 0 erfahrung hab zwar schon ne app mit der android sdk zusammen bekommen aber das wars auch.
    ja also kontakt daten werden ja ausgelesen also über die id bekomm ich name und telfonnr angezeigt wie gesagt halt die bilder ned scheint aber auch nur bei 2.1 so zu sein.


    naja nach beispielen hab ich schon gesucht aber da bekomm ich auch immer nur das standart bild bzw halt je nach dem garkeins mehr xD

  • is kein problem ich hab zeit denke mal ned das ich morgen schon wieder weg bin xD
    testen is genemigt wäre nur toll wenns läuft weils einfach praktich is xD


    paw server heißt das ganze markt runterladen und spass haben nettes prog ;)

Jetzt mitmachen!

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