0

我需要通过查询检查,如果联系人有照片,但堆栈上找到的所有解决方案都对我不起作用:

Cursor cur = this.ctx.getContentResolver().query(
            ContactsContract.Data.CONTENT_URI,
            null, ContactsContract.Data.MIMETYPE + "='"
                    + ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE + "'", null,
            null);

这是一个不起作用的方法,因为“database.sqlite.SQLiteException:没有这样的列 mimetype”

我还尝试检查 PHOTO_ID 是否为 0,但这永远不会发生。

如何查询过滤有/没有照片的联系人?

编辑:

好的,通过尝试找到了解决方案。它似乎适用于 PHOTO_ID

String hasPhoto = ContactsContract.Contacts.PHOTO_ID + " LIKE '%%'";
String hasNoPhoto = ContactsContract.Contacts.PHOTO_ID + " IS NULL";
4

1 回答 1

0

为什么不在数据库上使用 rawQuery,将联系人的 ID 传递给方法?

public String withPhoto(int id){
SQLiteDatabase database = new SQLiteDatabase();
String column = null;

database.open();
Cursor cursor = database.rawQuery("SELECT column FROM table/content_uri WHERE PHOTO_ID IS/IS NOT NULL AND CONTACT_ID = " + id)
if(!cursor.moveToFirst()){
     cursor.moveToFirst();
     column = cursor.getString(1)
   }
  cursor.close();

  return column;
}

编辑

对不起,我假设你有自己的数据库。这是ContactsContract类的链接,其中包含有关照片的信息:

来源:安卓开发者

于 2013-07-19T20:06:35.470 回答