首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在android中使用phoneNumber或email id作为参数从通讯录中获取联系人姓名

在Android中,可以使用ContentResolver类和ContactsContract类来从通讯录中获取联系人姓名。以下是使用phoneNumber或email id作为参数从通讯录中获取联系人姓名的步骤:

  1. 添加权限:在AndroidManifest.xml文件中添加以下权限:
代码语言:txt
复制
<uses-permission android:name="android.permission.READ_CONTACTS" />
  1. 创建一个方法来获取联系人姓名:
代码语言:txt
复制
private String getContactName(String phoneNumberOrEmail) {
    String contactName = "";

    // 查询条件
    String selection = ContactsContract.CommonDataKinds.Phone.NUMBER + " = ? OR " +
            ContactsContract.CommonDataKinds.Email.ADDRESS + " = ?";
    String[] selectionArgs = new String[]{phoneNumberOrEmail, phoneNumberOrEmail};

    // 查询联系人
    Cursor cursor = getContentResolver().query(
            ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
            new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME},
            selection,
            selectionArgs,
            null
    );

    if (cursor != null && cursor.moveToFirst()) {
        contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
        cursor.close();
    }

    return contactName;
}
  1. 调用方法并传入phoneNumber或email id参数:
代码语言:txt
复制
String phoneNumberOrEmail = "1234567890"; // 替换为要查询的phoneNumber或email id
String contactName = getContactName(phoneNumberOrEmail);

这样,contactName变量将包含从通讯录中获取到的联系人姓名。

请注意,上述代码仅获取了第一个匹配的联系人姓名。如果存在多个匹配的联系人,可以根据需求进行适当的处理。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云通讯录管理:https://cloud.tencent.com/product/contacts
  • 腾讯云移动推送:https://cloud.tencent.com/product/umeng
  • 腾讯云短信服务:https://cloud.tencent.com/product/sms
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS 通讯录相关序一、介绍二、弹出系统通讯录程序三、代理方法四、不需要弹出联系人控制器就可以获取联系人信息的方法五、iOS 9 新出的点击通讯录获取信息的办法

逻辑结构 3.授权相关: (1)iOS6开始,必须得到用户授权访问通讯录才能在AppStore上架(即使不授权也有时候可以访问通讯录) (2)申请通讯录访问授权的代码,通常放在AppDelegate...一个联系人就是一个ABRecordRef对象,就相当于一条记录,每个联系人都有自己的属性,比如名字、电话、邮件等,使用ABRecordCopyValue函数可以ABRecordRef获得联系人的简单属性...property) 有2个参数: 第1个参数是ABRecordRef实例 第2个参数ABPropertyID是属性关键字,定义在ABPerson.h,下面有介绍 注意:使用ABRecordCopyValue...标签和值的概念 :打印该方式获取到的联系人电话的标签和电话号码 ?...:YES completion:^{ // 多重属性——电话号取值,参数2是取点击的索引 NSString *aPhone = (__bridge_transfer

1.8K60
  • Go with Protobuf

    为什么使用Protocol Buffer 我们要使用的例子是一个非常简单的“通讯录”应用程序,它可以文件读写联系人的信息。通讯录每个人都有一个姓名ID、邮箱和练习电话。...定义Protocol文件 通讯录程序定义.proto文件开始。.proto文件的定义很简单:为要序列化的每个数据结构添加一个 message ,然后为消息的每个字段指定名称和类型。...例如,我们的示例将使用“tutorialpb”作为包名称。...序号1-15编码的字节数比较高的数字少一位,因此,作为一种优化,你可以决定对常用重复的元素使用这些标记,而对不常用的可选元素使用标记16更高。...对于嵌套的消息,默认值始终是消息的“默认实例”“原型”,该实例没有任何字段设置。调用访问器以获取未明确设置的字段的值始终返回该字段的默认值。

    41730

    Go with Protobuf

    为什么使用Protocol Buffer 我们要使用的例子是一个非常简单的“通讯录”应用程序,它可以文件读写联系人的信息。通讯录每个人都有一个姓名ID、邮箱和练习电话。...定义Protocol文件 通讯录程序定义.proto文件开始。.proto文件的定义很简单:为要序列化的每个数据结构添加一个message,然后为消息的每个字段指定名称和类型。...例如,我们的示例将使用“tutorialpb”作为包名称。...序号1-15编码的字节数比较高的数字少一位,因此,作为一种优化,你可以决定对常用重复的元素使用这些标记,而对不常用的可选元素使用标记16更高。...对于嵌套的消息,默认值始终是消息的“默认实例”“原型”,该实例没有任何字段设置。调用访问器以获取未明确设置的字段的值始终返回该字段的默认值。

    21410

    Android查缺补漏(IPC篇)-- 进程间通讯之AIDL详解

    AIDL文件的定向tag:in、out、inout的区别。 如何在AIDL添加权限校验。 一、AIDL是什么?...简要说明一下将要实现的小例子的需求:是一个通讯录,在服务端维护一个List用来存放联系人信息,客户端可以通过RPC方式来添加联系人获取联系列表等功能。...,即使与这个类的AIDL声明在同一个包使用import导入此类。...通过上面两个log说明客户端和服务端已经链接成功了,接下类测试一下各按钮远程方法,在号码输入框输入110,依次点击获取联系人名称按钮和获取联系人信息按钮,log如下: ......David,111,david`s home,然后点击添加联系人信息将联系人添加到远程列表里面,在点击获取联系人列表,log如下: ...

    1.8K70

    Android查缺补漏(IPC篇)-- 进程间通讯之AIDL详解

    AIDL文件的定向tag:in、out、inout的区别。 如何在AIDL添加权限校验。 一、AIDL是什么?...简要说明一下将要实现的小例子的需求:是一个通讯录,在服务端维护一个List用来存放联系人信息,客户端可以通过RPC方式来添加联系人获取联系列表等功能。...,即使与这个类的AIDL声明在同一个包使用import导入此类。...通过上面两个log说明客户端和服务端已经链接成功了,接下类测试一下各按钮远程方法,在号码输入框输入110,依次点击获取联系人名称按钮和获取联系人信息按钮,log如下: ......David,111,david`s home,然后点击添加联系人信息将联系人添加到远程列表里面,在点击获取联系人列表,log如下: ...

    60840

    c++实现个人通讯录

    期末考试作业: 主要结合教材1-4章所学知识开发一个个人版通讯录,要求通讯录可以实现以下功能: 添加联系人 删除联系人 查找联系人 联系人列表 通讯录存盘 读出通讯录 退出 功能提示: 为存储通讯录联系人信息...,需定义一个类Address,成员包括姓名、电话、邮箱地址、地址、邮编等;而且需要定义获取这些成员的成员函数,以及用于添加联系人、判断通讯录是否为空等函数。...初步设想用数组来存储这些联系人信息,数组大小就是通讯录的容量,每个数组元素是一个类对象,当添加联系人时,需要查找数组是否有空位,如果有,则将联系人添加进来;当删除一个联系人时,将这个位置标记为空,可以用于下一次添加...另外还需要设计第二个类AddresdBook,成员包括第一个类对象的数组、通讯录联系人个数;并且定义一些成员函数:添加、删除、查找、列表显示联系人,存盘读盘等。...{ color(03); cout<<"当前通讯录联系人有:"<<n<<"个 "<<endl<<"通讯录中最多可以添加"<<100-n<<"个联系人"<<endl; cout<<

    69350

    Android查缺补漏(IPC篇)-- 进程间通讯之AIDL详解

    AIDL文件的定向tag:in、out、inout的区别。 如何在AIDL添加权限校验。 一、AIDL是什么?...简要说明一下将要实现的小例子的需求:是一个通讯录,在服务端维护一个List用来存放联系人信息,客户端可以通过RPC方式来添加联系人获取联系列表等功能。...,即使与这个类的AIDL声明在同一个包使用import导入此类。...通过上面两个log说明客户端和服务端已经链接成功了,接下类测试一下各按钮远程方法,在号码输入框输入110,依次点击获取联系人名称按钮和获取联系人信息按钮,log如下: ......David,111,david`s home,然后点击添加联系人信息将联系人添加到远程列表里面,在点击获取联系人列表,log如下: ...

    83420

    五分钟完成 ABP vNext 通讯录 App 开发

    五分钟完成通讯录 App 开发 今天我们不讲模块开发,而是最简单的应用开发入手,笔者将遵循 Abp 最佳实践,带你体验如何在 5 分钟内,使用 Abp 框架开发一个通讯录 App。...(将在当前目录中生成项目) 第二步:创建“联系人”实体 在 Abp 联系人应为聚合根 AggregateRoot,详细请参考 Abp 官方手册对于领域驱动设计(DDD)的讲解。...birthday) : base(id) { Name = name; PhoneNumber = phoneNumber;...登录并使用通讯录(admin 用户的默认密码是 1q2w3E*) ? 你一定注意到了,表单已被 abp-dynamic-form TagHelper 自动生成。...此外,EasyAbp 还提供了很多实用的模块,了解更多:https://github.com/EasyAbp/EasyAbpGuide 下一节 在下一节,笔者将会介绍,如何给通讯录安装私信模块。

    2.1K10

    Android读取手机通讯录联系人到自己项目

    本文实例为大家分享了Android读取手机通讯录联系人到项目的具体代码,供大家参考,具体内容如下 一、主界面代码如下: <LinearLayout xmlns:android="http://schemas.android.com...:orientation="vertical" <ListView android:id="@+id/contacts_view" android:layout_width="match_parent...,使用了getContentResolver().query方法来查询系统的联系人的数据 //CONTENT_URI就是一个封装好的Uri,是已经解析过得常量 cursor=getContentResolver...=null){ while (cursor.moveToNext()){ //获取联系人姓名 String displayName=cursor.getString(cursor.getColumnIndex...,所以记得在Manifest开启权限 <uses-permission android:name="android.permission.READ_CONTACTS"/ 好了,下面运行一下,就可以读取出你手机里面的通讯录数据了

    3.6K40

    通讯录每个通讯者的信息包括编号、姓名、性别、电话、E-mail地址;采用单链表结构存储

    通讯录每个通讯者的信息包括编号、姓名、性别、电话、E-mail地址;采用单链表结构存储,实现以下功能: 1.通讯录的建立 2.通讯者信息的插入 3.通讯者信息的查询 4.通讯者信息的删除 5.通讯录的输出...)); } else { //如果没有该ID int choice1; printf("通讯录未找到该ID,是否使用默认方式将新节点插入到最后(1.是 0.否):"); scanf...\n"); } else { //通讯录未找到该ID int choice2; printf("通讯录未找到该ID,是否使用默认方式将该节点插入到最后(1.是 0.否):");...\n"); } else { printf("通讯录不存在该ID!...2.建立通讯录\n"); printf("\t\t\t3.删除联系人 4.修改联系人\n");

    97420

    sqlite3的C语言使用(一)

    前一天我讲了如何在VC连接sqlite的库,从今天开始就分几个专题详细学习一下sqlite的一些API。...明确一下今天我们写的这个程序的目的(也就是我的作业题): 通讯录管理软件。 通讯者信息包括:姓名、性别、手机、Email、地址。 软件功能:添加、查询、删除、全部输出。 ...Pointer to unused portion of zSql */ );     db:数据库句柄     zSql:sql语句     nByte:如果nByte小于0,则函数取出zSql开始到第一个...我们这个函数将sql语句编译成二进制字节码,以便后面的函数使用,编译好的东西就是stmt(第五个参数)。别问我为什么,我也不知道,但要执行sql来查询就要编译。...这是SelectPerson函数剩下的部分: if(sqlite3_step(stmt) == SQLITE_ROW) { printf("编号:%d 姓名:%s 性别:%s 电话:%s Email

    3.2K11

    【腾讯云 Cloud Studio 实战训练营】基于Cloud Studio完成简易通讯录

    简易通讯录 1.实验要求 以本班同学的具体数据为背景,设计一个本班同学的通讯录通讯录至少要包含姓名、性别、年龄、专业、地址、电话、E-mail信息。...通讯录要求实现以下功能: (1)通讯录可以添加、修改和删除记录; (2)通讯录可以按照不同项目进行查找; (3)对已存在的通讯录可以按照不同的项目排序; (4)可以把通讯录的信息保存到文件;...= email 3.2 定义通讯录列表 contact_list = [] 3.3 添加联系人功能 这个列表不能直接print ,可以这么干: for contact in contact_list...总之,这个通讯录管理系统是一个简单的项目,但是可以帮助开发者熟悉Python的基本语法和面向对象的编程思想。其实现也可以作为其他项目的基础框架,对于初学者来说是一个不错的学习资源。...但是在使用的过程,我想要输出一个折线图并没有成功,以及其他的输出图像的方式也没输出出来。

    42220

    如何监控别人的手机

    关于大家一直说怎么使用,我来简单的说明一下吧,讲工程文件的apk文件安装在你想监控的人的手机,然后随便找个手机给他 发短信"qingxue:12" 表示以短信的模式获取 再发"qingxue:1"...” 注:以上短信内容均不含"" 以下程序可实现通话记录监控,通讯录获取,短信获取,或者利用被控端进行短信转发,至于另外一些像虚拟短信,短信屏蔽,电话录音或者屏蔽,都是大同小异,由于时间关系这里就不实现了...:SystemManage 包结构: 清单文件,主要是一些用到的android权限 <manifest xmlns:android="http://schemas.android.com/apk/res..._ID)); // 获取联系人ID号,在SQLite的数据库ID Cursor phone = cr.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI...// 呼叫号码 String strName = cursor.getString(cursor .getColumnIndex(Calls.CACHED_NAME)); // 联系人姓名

    2.1K90

    反间谍之旅:首款安卓远控木马工具分析

    图3-5 开机启动广播MyReceiver 初始化socket,配置参数,监听连接。 ? ?...图3-14 获取用户登录凭证并发送 获取用户注册时输入的邮箱账号、密码及姓名信息,并发送至服务器: http://ra***ch.com/Debugging/process/process/resolving...3.4 应用传播 应用具有分享app给通讯录联系人的功能,当用户点击分享app时,将带有应用下载地址链接的短信发送给联系人。 ?...图 3-16 通过联系人传播应用 发送链接:http://play.google.com/store/apps/details?id=com.radiobalouch.rbmusic给通讯录联系人。...坚持去正规应用商店下载软件,避免论坛等下载软件,可以有效的减少该类病毒的侵害。关注”暗影实验室”公众号,获取最新实时移动安全状态,避免给您造成损失和危害。 安装好杀毒软件,能有效的识别已知的病毒。

    2.4K00
    领券