Android Studio 如何从设备联系人获取唯一的电话号码,而不是什么应用程序和二人组号码等

lndjwyie  于 2022-11-16  发布在  Android
关注(0)|答案(2)|浏览(253)

如何从设备联系人获取唯一的电话号码,而不是什么应用程序和二人组号码等。
示例:我得到了设备的联系电话,但该返回
1.电话号码
1.什么是应用程序编号

  1. Google Duo号码等...
    注意:我只需要本地设备联系人的电话号码。
val phones: Cursor? = contentResolver.query(
        ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
        null,
        ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
        arrayOf(contactId),
        null
    )

// This will return list of contact number
val phoneNumbers: Int = it.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)
k4aesqcs

k4aesqcs1#

参考:-https://developer.android.com/training/contacts-provider/retrieve-details
上面的链接有- ContactsContract.Data.DATA1,它只检索电话号码,请检查上面的链接以获取更多详细信息

jm2pwxwz

jm2pwxwz2#

试试这个,我希望这对你有帮助。

//ContactsContract defines an extensible database of contact-related information
    var uri = ContactsContract.Data.CONTENT_URI

    val PROJECTION = arrayOf(
        ContactsContract.Data.CONTACT_ID,
        ContactsContract.Data.DISPLAY_NAME,
        ContactsContract.Data.PHOTO_URI,
        ContactsContract.Data.DATA1
    )

    var cursor =
        contentResolver.query(uri, PROJECTION, ContactsContract.Data.MIMETYPE + " = ?", arrayOf(
            ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE
        ), ContactsContract.Contacts.DISPLAY_NAME + " ASC ", null)

    while (cursor.moveToNext())
    {
        val contactId =
            cursor!!.getString(cursor!!.getColumnIndex(ContactsContract.Data.CONTACT_ID))
        val photo = cursor!!.getString(cursor!!.getColumnIndex(ContactsContract.Data.PHOTO_URI))
        val name = cursor!!.getString(cursor!!.getColumnIndex(ContactsContract.Data.DISPLAY_NAME))
        val phone = cursor!!.getString(cursor!!.getColumnIndex(ContactsContract.Data.DATA1))
    }

相关问题