gpt4 book ai didi

android - 如何从 Android 上的电话号码中查找联系人的姓名?

转载 作者:IT老高 更新时间:2023-10-28 23:28:33 27 4
gpt4 key购买 nike

我正在尝试使用内容提供者从联系人数据库中获取发件人的姓名。

问题是我不知道如何实现它。就像现在我只能从 smsMessage 中提取电话号码。我需要先检查正在调用的电话号码是否在用户联系人中,如果不是则显示姓名。

最佳答案

是的,这可以在 Android 2.0 及更高版本中使用 ContactsContract.PhoneLookup.CONTENT_FILTER_URI 以及在 Android 1.6 及更早版本中使用 Contacts.Phones.CONTENT_FILTER_URL

例如用法,见文档 ContactsContract.PhoneLookup .摘录如下:

// Android 1.6 and earlier (backwards compatible for Android 2.0+)
Uri uri = Uri.withAppendedPath(Contacts.Phones.CONTENT_FILTER_URL, Uri.encode(phoneNumber));

// Android 2.0 and later
Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber));

// Query the filter URI
String[] projection = new String[]{ PhoneLookup.DISPLAY_NAME, ...
Cursor cursor = context.getContentResolver().query(uri, projection, ...

更新:电话号码的格式无关紧要。在 Android 上比较健壮且高度优化;它是使用名为 PHONE_NUMBERS_EQUAL 的原生 sqlite 函数完成的。更多详情,search the codebase for this method .顺便说一句,我不确定直接在您自己的应用中使用该功能是否安全,但我不会。

关于android - 如何从 Android 上的电话号码中查找联系人的姓名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2174048/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com