Я создаю свой собственный сборщик контактов, потому что мне нужна поддержка множественного выбора. Все работает нормально, за исключением одной маленькой проблемы с изображениями контактов.
Для контактов, у которых нет изображений, я показываю изображение без изображения. Это прекрасно работает для контактов в адресной книге телефона. Однако у меня проблема с изображениями из моих контактов в Google.
У большинства моих контактов в гугле нет фотографий. Однако, когда я запрашиваю базу данных контактов для фотографий, она все равно возвращает для них URI в форме content://com.android.contacts/contacts/657/photo
(тот же формат, что и для контактов, у которых do есть фото.
Затем, когда я пытаюсь назначить фотографию для 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) запросить изображение / значок, чтобы увидеть, нашло ли оно правильное изображение
чтобы я мог назначить этим контактам свое изображение "без изображения".
Как я могу сделать это?
РЕДАКТИРОВАТЬ 20110812.0044
Я попытался добавить это к своему коду согласно предложению Лоуренса (которое он с тех пор удалил):
// rv is my URI variable
if(rv != null) {
Drawable d = Drawable.createFromPath(rv.toString());
if (d == null) rv = null;
}
Хотя контакты Google теперь получают мое изображение «без изображения», ... так же, как и все остальные контакты, включая те, которые делают на самом деле имеют изображения.