检查来电号码是否存储在联系人列表中 android

2023-12-01

在我的 Android 应用程序中,当有来电时,我想显示我的自定义用户界面,并且我能够做到这一点。 不,我想检查传入号码是否来自联系人。 下面是我执行此操作的代码,但对于存储在我的联系人列表中的传入号码,它返回 null。

public String findNameByNumber(String num){
    Uri uri = Uri.withAppendedPath(Phones.CONTENT_FILTER_URL, Uri.encode(num));

    String name = null;
    Cursor cursor = mContext.getContentResolver().query(uri, 
                        new String[] { Phones.DISPLAY_NAME }, null, null, null);
    if (cursor != null && cursor.moveToFirst()) {
        name = cursor.getString(cursor.getColumnIndex(Phones.DISPLAY_NAME));
        cursor.close();
        callyName.setText(name+" Calling..");
    }
    return name;
}

我有一个号码打来的电话,比如+917878787878,但在我的联系人中,此联系人存储为名称 XYZ,号码为 78 78 787878,其格式是因为号码之间有空格。也尝试排除 +91,但它仍然返回 null 。 那么我如何找到以任何格式存储的号码。它可能与国家/地区代码一起存储,也可能不与国家/地区代码一起存储。

提前致谢。


尝试使用此代码(使用 PhoneLookup.CONTENT_FILTER_URI 而不是电话):

String res = null;
    try {
        ContentResolver resolver = ctx.getContentResolver();
        Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber));
        Cursor c = resolver.query(uri, new String[]{PhoneLookup.DISPLAY_NAME}, null, null, null);

        if (c != null) { // cursor not null means number is found contactsTable
            if (c.moveToFirst()) {   // so now find the contact Name
                res = c.getString(c.getColumnIndex(CommonDataKinds.Phone.DISPLAY_NAME));
            }
            c.close();
        }
    } catch (Exception ex) {
        /* Ignore */
    }        
    return res;

正如文档所说联系人合同.电话查找:表示查找电话号码的结果的表,例如来电显示。要执行查找,您必须将要查找的号码附加到 CONTENT_FILTER_URI。该查询经过高度优化。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检查来电号码是否存储在联系人列表中 android 的相关文章

随机推荐

  • 使用 HTML5 标签播放视频

    我正在创建一个需要流式传输视频的网站 内容创建者将 mov 文件上传到服务器 上传后 我使用 FFMPEG mp4 webm 和 ogg 转换为以下格式 我现在尝试允许从多个浏览器和手持设备观看视频 代码如下
  • 将 xml 转换为 xls

    我正在寻找有关如何实现将基于 Web 的 XML 数据放入电子表格中的方法的想法 理想的解决方案是在每次打开电子表格时更新电子表格 而无需用户交互 即 我不想告诉人们运行宏 然而 我的第一个想法 可能是我最终会想到的 是一个 Perl 脚本
  • 链接 iframe 以在 Lightbox 中打开

    是否可以使用链接链接到在 lightbox 或 fancybox 中打开的 iFrame 内容 例如 查看我的平面设计画廊 单击此处 gt 从其他站点显示我的画廊的灯箱 可能的 我如何在灯箱 花式箱中对其进行编码 我知道现在这是可能的 但无
  • 在编译时使用自定义类加载器

    是否可以为 javac 或某些替代的 java 编译器 指定自定义类加载器 我很喜欢这样的壮举 因为它允许我编译使用仅由我的特殊类加载器找到的类的类 对于好奇的人 我会编写一个类加载器 它连接到数据库并根据它找到的表创建类 当您运行 jav
  • Android中如何从URL读取json数据

    我对以下代码有一些问题 我正在尝试从以下 Reddit URL 中读取内容 https www reddit com r earthporn json after 这是未正确执行的代码 public static String readCo
  • 如何限制颤振中文本字段的表情符号?

    你好 我正在寻找限制表情符号正则表达式或用于颤振的输入格式化程序 我想禁用文本字段中的表情符号 如果有人有想法 请帮助我 提前致谢 magicleon94 几乎回答了你的问题 但我认为我的答案值得一提 而不是限制不需要的表情符号 其中集合是
  • 如何读取pandas文件夹中的所有csv文件? [复制]

    这个问题在这里已经有答案了 每个月我都会下载 csv 格式的整个分类帐并将其保存到文件夹中 我如何在 pandas 中将其作为单个数据帧读取 福汤姆森的答案但最后一行应该是 import pandas as pd import glob f
  • 对于 SQL Server,我希望仅对非空值建立唯一索引[重复]

    这个问题在这里已经有答案了 可能的重复 具有重复 NULL 的 SQL Server UNIQUE 约束 在 Sql Server 中 我想要一个同时包含空值和实值的列 如果该列有值 我想确保它是唯一的 该列可以有多行且该列为空 例如 假设
  • LexikJWT 通过 token 获取用户个人资料

    使用 LexikJWTAuthenticationBundle FOSRest FOSUser 如何通过令牌获取经过身份验证的用户配置文件 是否可以 假设用户已经通过 LexikJWT 进行了身份验证 并且我有一个 api 端点 例如 ap
  • 这是 python eval() 的安全使用吗?

    如果攻击者可以控制attacker controlled nasty variable 这一段代码容易受到攻击吗 dic one 1 nasty attacker controlled nasty variable store str di
  • 图像在列表视图中随机播放。滚动时

    发生的情况是 当滚动列表时 每个项目上加载的图像都会被打乱 并且每个项目的头像都会转到下一个项目结束 我不知道我是否清楚 但我会用图片来展示 我的自定义适配器类 import android content Context import a
  • 从 jqGrid 的 gridComplete 事件期间创建的按钮调用函数?

    我试图在 gridComplete 事件期间创建的按钮的 onclick 事件中调用一个函数 加载正常 这是第一行中按钮的渲染 html 的样子
  • 匹配数组内的多个条件[重复]

    这个问题在这里已经有答案了 我有以下内容 offers user jon price 200 selected false user ted price 100 selected true 我正在尝试进行匹配 以获取用户被 ted 且选择为
  • 如何使用 DirectoryInfo.GetFiles 并让它在找到第一个匹配项后停止?

    需要搜索目录 子目录来查找文件 希望它在找到文件后停止 这是我缺少的 DirectoryInfo GetFiles 内置功能 还是应该使用其他功能 自行实现的递归搜索 Use DirectoryInfo EnumerateFiles 相反
  • Chrome ARC 中的 Google 地图

    我最近看到 ARC 现在支持一些 Google Play 服务 包括 Google 地图 使用 ARC Welder 时 我指定以下元数据 usePlayServices maps 根据文档here 我还必须在元数据中包含 crx key
  • 由于 403 错误,HPA 无法获取指标

    我在 hpa 中使用了以下指标 apiVersion autoscaling v2beta2 kind HorizontalPodAutoscaler metadata name app svc hpa namespace default
  • .Net TextBox 具有自动完成和自定义排序(非字母顺序)

    我正在搜索具有默认自动完成功能的文本框控件 但建议中的条目应像列表中的项目一样排序 例如 列出项目 ab ac aa bb 如果我在文本框中输入字母 a 建议的项目应按如下方式排序 ab ac aa 不是这样的 aa ab ac 有没有办法
  • Chrome扩展:onclick()事件没有触发alert()弹出窗口[重复]

    这个问题在这里已经有答案了 我无法触发alert 弹出窗口onclick event Code File 清单 json name Project version 1 0 0 manifest version 2 description P
  • 将 Java 库导入到 C# 中

    因此 我已用 C 将代码写入 zip 文件 但是当我导入库时 我有以下内容 Using java util Using java util zip Using java io 但是 这些都用红色下划线表示 并带有错误消息 The type
  • 检查来电号码是否存储在联系人列表中 android

    在我的 Android 应用程序中 当有来电时 我想显示我的自定义用户界面 并且我能够做到这一点 不 我想检查传入号码是否来自联系人 下面是我执行此操作的代码 但对于存储在我的联系人列表中的传入号码 它返回 null public Stri