Phonegap android处理null联系人图像

时间:2013-07-10 05:05:16

标签: android cordova contacts android-contacts

我使用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?

        }
...
}

请帮助,谢谢大家。

1 个答案:

答案 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来构建自己的原生查询。否则我相信,你没有办法实现你打算做的事。