Я создаю свой собеседник, потому что мне нужна поддержка нескольких элементов. Все работает нормально, за исключением одной маленькой проблемы с контактными изображениями.
Для контактов, у которых нет изображений, я показываю изображение без изображения. Это прекрасно подходит для контактов в телефонной адресной книге. Однако у меня проблема, когда дело касается изображений из моих контактов google.
В большинстве моих контактов Google нет фотографий. Однако, когда я запрашиваю базу данных контактов для фотографий, она по-прежнему возвращает URI для формы content://com.android.contacts/contacts/657/photo
(это тот же формат, что и для контактов, у которых сделать есть фотография.
Затем, когда я пытаюсь назначить фотографию QuickContactBadge, используя bdg.setImageURI(pic);
, он устанавливает по существу пустую картинку и записывает тихое сообщение INFO с сообщением:
INFO/System.out(3968): resolveUri failed on bad bitmap uri:
content://com.android.contacts/contacts/657/photo
Мне нужно знать, как я могу либо
a) проверить URI или
b) поймать сообщение INFO выше
c) запросить изображение/значок, чтобы узнать, найдено ли оно правильное изображение
чтобы я мог назначить этим контактам изображение "без изображения".
Как я могу это сделать?
EDIT 20110812.0044
Я попытался добавить это в свой код в соответствии с предложением Лоуренса (которое он снял):
// rv is my URI variable
if(rv != null) {
Drawable d = Drawable.createFromPath(rv.toString());
if (d == null) rv = null;
}
В то время как контакты google теперь получают мое изображение "без изображения"... так что все остальные контакты, в том числе те, что делают, фактически имеют изображения.