Android 安卓11获得联系人的生日

Android 安卓11获得联系人的生日,android,android-contacts,Android,Android Contacts,我试图查询所有联系人的生日。这就是我正在使用的-- mimetype字段是否已从Android 11中删除?任何帮助都将不胜感激。谢谢。Contacts.Contacts.CONTENT\u URI上的表只包含非常通用的联系信息,如\u ID、DISPLAY\u NAME等。 它不包含联系人的实际数据,如电话、电子邮件、事件等 它们存储在一个单独的表中,因此您需要将游标加载程序中的表更改为该表 此外,您的预测需要更改为: private val PROJECTION: Array<out

我试图查询所有联系人的生日。这就是我正在使用的--


mimetype
字段是否已从Android 11中删除?任何帮助都将不胜感激。谢谢。

Contacts.Contacts.CONTENT\u URI上的表只包含非常通用的联系信息,如\u ID、DISPLAY\u NAME等。 它不包含联系人的实际数据,如电话、电子邮件、事件等

它们存储在一个单独的表中,因此您需要将游标加载程序中的表更改为该表

此外,您的预测需要更改为:

private val PROJECTION: Array<out String> = arrayOf(
    Data.CONTACT_ID,
    Contacts.LOOKUP_KEY,
    Contacts.DISPLAY_NAME
)
private val投影:Array=arrayOf(
Data.CONTACT_ID,
Contacts.LOOKUP_键,
Contacts.DISPLAY\u NAME
)
    override fun onCreateLoader(loaderId: Int, args: Bundle?): Loader<Cursor> {
        // Starts the query
        return activity?.let {
            return CursorLoader(
                it,
                ContactsContract.Contacts.CONTENT_URI,
                PROJECTION,
                SELECTION,
                selectionArgs,
                null
            )
        } ?: throw IllegalStateException()
    }
Caused by: android.database.sqlite.SQLiteException: no such column: mimetype (code 1 SQLITE_ERROR): , while compiling: SELECT _id, lookup, display_name FROM view_contacts WHERE ((1)) AND (mimetype = ? AND data2 = 3)
private val PROJECTION: Array<out String> = arrayOf(
    Data.CONTACT_ID,
    Contacts.LOOKUP_KEY,
    Contacts.DISPLAY_NAME
)