【问题标题】:Check if contact has photo on Android >2.3.3检查联系人在 Android >2.3.3 上是否有照片
【发布时间】:2013-07-19 05:09:18
【问题描述】:

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

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: no such column mimetype”

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

如何进行查询以过滤带有/不带有照片的联系人?

编辑:

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

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

【问题讨论】:

    标签: android sql contacts photo


    【解决方案1】:

    为什么不在数据库上使用 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 Class 的链接,其中包含有关照片的信息:

    来源:Android 开发者

    【讨论】:

    • 但我认为它不会改变任何东西。用于检查照片是否可用的“官方”列不存在(不再存在)
    • 您需要哪些标识符来识别照片?有没有可以加入的单独表格?
    • 我有 PHOTO_ID、PHOTO_URI、PHOTO_FIELD_ID 和 PHOTO_THUMBNAIL_URI。我还不熟悉 android 上的联系人数据库,但就我现在而言,照片详细信息与联系人本身在同一张表中
    猜你喜欢
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    相关资源
    最近更新 更多