2010-07-13 6 views
2

Je souhaite insérer une photo de contact avec d'autres informations dans un encart. « Est » est le flux d'entrée en utilisant les uri de la photo:Android: insertion par lots contact photo

is = Data.clientContext.getContentResolver().openInputStream(/data/data/com.project.xxxxxxxxxxxxx/files/photo); 

      op_list.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI) 
       .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) 
       .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE) 
       .withValue(ContactsContract.CommonDataKinds.Photo.PHOTO, is) 
       .build()); 

Je ne peux pas sembler obtenir la photo à insérer avec le lot. Des pointeurs?

Répondre

3

cette méthode peut résoudre votre problème.

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
        photo.compress(Bitmap.CompressFormat.PNG, 100, baos); 
        ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI) 
         .withValue(Data.RAW_CONTACT_ID, rawId) 
         .withValue(Data.MIMETYPE, ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE) 
         .withValue(ContactsContract.CommonDataKinds.Photo.PHOTO, baos.toByteArray()) 
         .build()); 
+0

explications supplémentaires: photo est de type Bitmap, photo Bitmap; – user408273

Questions connexes