我需要通过查询检查,如果联系人有照片,但堆栈上找到的所有解决方案都不适合我:
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";
答案 0 :(得分: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类的链接,其中包含照片信息:
来源:Android开发人员