我使用Phonegap(2.5)从android(4.0)获取联系人图像,以便与头像和名称建立联系人列表。
联系头像获取正常的网址数据(示例数据:内容://com.android.contacts/contacts/189/photo)但我不知道如果该网址指向空图像(如它将显示一个带有问号的蓝色方块,其中该联系人项目没有avarta设置)。如果图像为空或未设置,那么它应该是我的默认图像网址。
...
navigator.contacts.find(
['id', 'name', 'phoneNumbers', 'photos', 'displayName'],
function(deviceContacts) {
for (var i = 0; i < deviceContacts.length; i++) {
var deviceContact = deviceContacts[ i ];
if (deviceContact.photos !== null){
img = deviceContact.photos[0].value; //url to image
my_img_item.setSrc(img);
//how to check if image is null or not setup then show default image?
}
...
}
请帮助,谢谢大家。
答案 0 :(得分:2)
我对这个话题做了一些进一步的研究。我检查了Phonegap代码(不幸的是我在这里只有2.8版本。
我发现了这个:
private JSONObject photoQuery(Cursor cursor, String contactId) {
JSONObject photo = new JSONObject();
try {
photo.put("id", cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Photo._ID)));
photo.put("pref", false);
photo.put("type", "url");
Uri person = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, (new Long(contactId)));
Uri photoUri = Uri.withAppendedPath(person, ContactsContract.Contacts.Photo.CONTENT_DIRECTORY);
photo.put("value", photoUri.toString());
} catch (JSONException e) {
Log.e(LOG_TAG, e.getMessage(), e);
}
return photo; }
如果我正确地解释了这个,那么URI只是一般地放在一起,甚至没有检查是否有可用的化身。所以你可以做的就是编写自己的Phonegap-plugin来构建自己的原生查询。否则我相信,你没有办法实现你打算做的事。