I'm happily retrieving contact photos with the new ContactsContract
APIs and cursor.getBlob, but I'm having great trouble working out how
to set a contact photo.

I believe I have the right URI (at least, it works for retrieving the
photo), but it just won't work for updating or adding one.

Here's my best bet:

ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, bytes);

Uri uri = Uri.withAppendedPath( ContactsContract.Contacts.CONTENT_URI,
friendId );
uri = Uri.withAppendedPath( uri,
ContactsContract.Contacts.Photo.CONTENT_DIRECTORY);

// eg: content://com.android.contacts/contacts/6/photo

ContentValues values = new ContentValues();

values.put(ContactsContract.CommonDataKinds.Photo.PHOTO,
bytes.toByteArray());
values.put(ContactsContract.CommonDataKinds.Photo.MIMETYPE,
ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE );

context.getContentResolver().insert(uri, values);

And here's my exception:

java.lang.UnsupportedOperationException: Unknown uri:
content://com.android.contacts/contacts/6/photo
     at com.android.providers.contacts.LegacyApiSupport.update
(LegacyApiSupport.java:914)
     at
com.android.providers.contacts.ContactsProvider2.updateInTransaction
(ContactsProvider2.java:2924)
     at com.android.providers.contacts.SQLiteContentProvider.update
(SQLiteContentProvider.java:139)
     at com.android.providers.contacts.ContactsProvider2.update
(ContactsProvider2.java:1923)
     at android.content.ContentProvider$Transport.update
(ContentProvider.java:180)
     at android.content.ContentProviderNative.onTransact
(ContentProviderNative.java:195)
     at android.os.Binder.execTransact(Binder.java:287)
     at dalvik.system.NativeStart.run(Native Method)


Any thoughts ?

Thanks,

Richard

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to