如何更新已经没有图片的联系人的图片

时间:2013-04-10 06:08:51

标签: android

我的代码适用于已有图片的联系人但如果联系人已无照片则不会更新。

Bitmap photo =pic;
ByteArrayOutputStream stream = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.JPEG, 100, stream);    
if(! ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
        .withSelection(
                ContactsContract.Data.RAW_CONTACT_ID + "=" + RawId + " AND "
                        + ContactsContract.Data.MIMETYPE +     "='"
                        +   ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE+ "'", null)

         .withValue(ContactsContract.CommonDataKinds.Photo.PHOTO,stream.toByteArray())
         .build()))
{
Toast.makeText(getApplicationContext(), "Failed to update",  Toast.LENGTH_SHORT).show();}
else if(noPhoto==1)
{

int rawContactId = -1;
Cursor c = getContentResolver().query(ContactsContract.Data.CONTENT_URI, null,   ContactsContract.Data.CONTACT_ID + "=?", new String[] {contactID2}, null);
   if(c.moveToFirst())
   {


           ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)

                    .withValue(ContactsContract.Data.RAW_CONTACT_ID,RawId )
                    .withValue(ContactsContract.Data.IS_SUPER_PRIMARY, 1)
                    .withValue(ContactsContract.Data.MIMETYPE,      ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE)
                    .withValue(ContactsContract.Data.DATA15, stream.toByteArray())
                   .build());

   } 

0 个答案:

没有答案