在 Android API 8 和 10 中,ContactsContract.Data.HAS_PHONE_NUMBER 类没有这样的列。但是,您可以使用其他方法来检查是否存在电话号码。
一种方法是使用 ContentResolver 查询电话号是否存在。以下是一个示例代码片段:
val contentResolver = application.contentResolver
val hasPhoneNumber = contentResolver.query(
ContactsContract.Data.CONTENT_URI,
arrayOf(ContactsContract.Data.HAS_PHONE_NUMBER),
ContactsContract.Data.CONTACT_ID + " = ?",
arrayOf(id),
null
)
如果该查询返回一个结果,则说明该联系人存在电话号码,并且该列在 ContactsContract.Data 中。
另一种方法是使用 Android 的原生电话号码 API 进行查询。您可以使用以下代码片段来查询联系人是否存在电话号码:
val phoneNumbers = telephonyManager.phoneNumbers
if (phoneNumbers.count > 0) {
// 获取第一个电话号码
val phoneNumber = phoneNumbers[0]
// 检查电话号码是否与联系人匹配
if (phoneNumber.number == number) {
// 是,则存在电话号码
hasPhoneNumber = true
}
}
如果该代码返回 true
,则说明该联系人存在电话号码,并且该列在 ContactsContract.Data 中。
请注意,这些方法可能不适用于所有 Android 设备或 Android 版本。因此,您可能需要针对不同的设备或版本进行适当的调整。
领取专属 10元无门槛券
手把手带您无忧上云