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

如何从Android的联系人中获取ContactNumbers数组的联系人姓名?

从Android的联系人中获取ContactNumbers数组的联系人姓名,可以通过以下步骤实现:

  1. 获取联系人权限:在AndroidManifest.xml文件中添加读取联系人权限:
代码语言:txt
复制
<uses-permission android:name="android.permission.READ_CONTACTS" />
  1. 创建一个方法来获取联系人姓名和电话号码:
代码语言:txt
复制
private void getContactNumbers() {
    ArrayList<String> contactNames = new ArrayList<>();
    ArrayList<String> contactNumbers = new ArrayList<>();

    ContentResolver contentResolver = getContentResolver();
    Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

    if (cursor != null && cursor.getCount() > 0) {
        while (cursor.moveToNext()) {
            String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
            String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

            if (Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
                Cursor phoneCursor = contentResolver.query(
                        ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                        null,
                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
                        new String[]{contactId},
                        null);

                if (phoneCursor != null) {
                    while (phoneCursor.moveToNext()) {
                        String phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                        contactNames.add(contactName);
                        contactNumbers.add(phoneNumber);
                    }
                    phoneCursor.close();
                }
            }
        }
        cursor.close();
    }

    // 在这里可以使用contactNames和contactNumbers数组进行后续操作
}
  1. 调用getContactNumbers()方法来获取联系人姓名和电话号码:
代码语言:txt
复制
getContactNumbers();

这样,你就可以从Android的联系人中获取ContactNumbers数组的联系人姓名了。

注意:以上代码只是获取联系人姓名和电话号码的基本示例,实际应用中可能需要进行异常处理、权限检查等。另外,腾讯云没有直接相关的产品和产品介绍链接地址,因此无法提供相关推荐。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android系统联系人全特效实现(上),分组导航和挤压动画

记得在我刚接触Android的时候对系统联系人中的特效很感兴趣,它会根据手机中联系人姓氏的首字母进行分组,并在界面的最顶端始终显示一个当前的分组。...然后是加入一个简单的LinearLayout,里面包含了一个ImageView用于显示联系人头像,还包含一个TextView用于显示联系人姓名。...先从简单的开始,新建一个Contact实体类: public class Contact { /** * 联系人姓名 */ private String name; /** * 排序字母...toUpperCase(); if (key.matches("[A-Z]")) { return key; } return "#"; } } 可以看到,在onCreate方法中,我们从系统联系人数据库中去查询联系人的姓名和排序键...第三个alphabet参数这里传入了"#ABCDEFGHIJKLMNOPQRSTUVWXYZ"字符串,因为可能有些联系人的姓名不在字母表范围内,我们统一用#来表示这部分联系人。

1.2K50
  • Android ContentProvider之联系人数据库及操作

    “mimetype”是电话 或者 姓名 的标示符编码: 例如:电话 对应“vnd.android.cursor.item/phone_v2” 姓名 对应“vnd.android.cursor.item/...Uri uri = Uri.parse(“content://com.android.contacts/raw_contacts”); raw_contacts表 该表保存了所有创建过的手机测联系人,每个联系人占一行...该表保存了联系人的RawContactID、ContactID、联系次数、最后一次联系的时间、是否被添加到收藏夹、显示的名字、用于排序的汉语拼音等信息。...获取联系人的_id Cursor query = getContentResolver().query(uri, new String[]{"_id"}, null, null, null);...=null && cursor.getCount() > 0){ //从cursor中取出我们需要的联系人姓名和电话 while(cursor.moveToNext()){

    98110

    c++课程设计具有简单功能的通讯录管理系统

    2.以菜单方式工作(字符界面即可) 3.存储在手机卡上的联系人的信息包括:姓名和电话号码;存储在手机上的联系人的信息包括姓名,籍贯,电话号码,QQ号等信息 4.管理系统的功能包括: a)新建联系人...说明,如果两个存储位置上都存在该联系人的话,需要在两个存储位置上都要进行修改操作) d)查询:根据名字查询联系人信息(查询结果不唯一) e)浏览:显示所有联系人的信息 f)将联系人的信息从手机转存到手机卡上...g)将联系人的信息从手机卡上转存到手机上(同时要避免重复数据的存在) 5.要支持继承、多态、重载(运算符重载、函数重载)等面向对象的基本特点 6.提交程序源码和课程设计报告。...,并根据文件内容创建联系人对象数组 析构函数:将对象数组中的内容写入到文本文件中。...,并根据文件内容创建联系人对象数组 析构函数:将对象数组中的内容写入到文本文件中。

    76310

    android经常使用的电话操作

    给大家分享一下我的一个Android工具类,能够获取手机里面的各种信息,包含拨打电话。 获取全部联系人姓名及电话,插入联系人姓名及电话,插入联系人姓名及电话。插入通话记录。获取用户全部短信。...Intent.ACTION_CALL); intent.setData(Uri.parse("tel:" + number)); context.startActivity(intent); } /* * 获取全部联系人姓名及电话..._ID)); // 获取联系人的ID号,在SQLite中的数据库ID Cursor phone = cr.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI...resultList.add(new ContactsInfo(name, strPhoneNumber)); } } return resultList; } /* * 插入联系人姓名及电话...Phone.TYPE, Phone.TYPE_MOBILE); cr.insert(ContactsContract.Data.CONTENT_URI, values); } /* * 批量插入联系人姓名及电话

    56510

    抽丝剥茧C语言(高阶)静态通讯录

    静态通讯录 通讯录目录 初始化通讯录 添加联系人和展示通讯录的联系人 删除联系人,修改联系人,查找联系人 排序通讯录 完整的代码 通讯录目录 用C语言模拟出来一个通讯录,首先要分头文件和源文件的,我这里分了一个头文件和两个源文件...首先,我们写的通讯录鸭油7个功能: 添加联系人,删除联系人,修改联系人的信息,查找联系人,展示通讯录联系人,排序通讯录中的联系人,退出通讯录。...添加联系人和展示通讯录的联系人 添加联系人首先要先判断通讯录是不是人数已经满了,然后在contacts结构体中的person data[100]存放联系人的信息,从data[0]开始,那么count就是计算有多少个联系人...修改联系人就更容易了,直接将原来联系人的信息覆盖掉就可以了,等于无循环版本添加联系人函数。...estimate(const void* p1, const void* p2) { return strcmp(((person*)p1)->name, ((person*)p2)->name);//比较的是联系人中姓名的大小

    71700

    iOS获取通讯录联系人信息 原

    iOS获取系统通讯录联系人信息 一、权限注册 随着apple对用户隐私的越来越重视,IOS系统的权限设置也更加严格,在获取系统通讯录之前,我们必须获得用户的授权。...二、获取通讯录联系人详细信息     //获取所有联系人的数组     CFArrayRef allLinkPeople = ABAddressBookCopyArrayOfAllPeople(addBook...(people, kABPersonLastNameProperty));         //获取当前联系人中间名         NSString*middleName=(__bridge NSString...*)(ABRecordCopyValue(people, kABPersonMiddleNameProperty));         //获取当前联系人的名字前缀         NSString*prefix...修改联系人的操作就是将获取和添加和在一起,先获取到相应的联系人引用,重设其属性字段即可。

    1.3K40

    iOS获取通讯录联系人信息

    IOS获取系统通讯录联系人信息 一、权限注册 随着apple对用户隐私的越来越重视,IOS系统的权限设置也更加严格,在获取系统通讯录之前,我们必须获得用户的授权。...二、获取通讯录联系人详细信息     //获取所有联系人的数组     CFArrayRef allLinkPeople = ABAddressBookCopyArrayOfAllPeople(addBook...(people, kABPersonLastNameProperty));         //获取当前联系人中间名         NSString*middleName=(__bridge NSString...*)(ABRecordCopyValue(people, kABPersonMiddleNameProperty));         //获取当前联系人的名字前缀         NSString*prefix...修改联系人的操作就是将获取和添加和在一起,先获取到相应的联系人引用,重设其属性字段即可。

    1.6K40

    【ProtoBuf】proto3语法(一)

    这个部分会对通讯录进⾏多次升级,使⽤ 2.x表⽰升级的版本,最终将会升级如下内容: 不再打印联系⼈的序列化结果,⽽是将通讯录序列化后并 写⼊⽂件中。 从⽂件中将通讯录解析出来,并进⾏打印。...对于⼤多数程序来说这是不必要的,因为该过程⽆论如何都要退出,并且操作系统将负责回收其所有内存。...()来获取数组中的元素值,即每一个联系人的基本信息。...然后打印出联系人的姓名和年龄信息。...而每个人的手机号信息都是一个数组,所以我们需要对每一个联系人的手机号数组进行遍历,将所有手机号给打印出来,因为phone也是一个数组,所以可以直接调用 people.phone() 来获取手机号数组。

    4700

    Android中ContentProvider的用法

    " android:layout_height="wrap_content" /> 一个按钮,对应于获取联系人信息事件,一个ListView用于显示联系人的信息...ContentResolver对象,并且调用query方法, * 传入联系人的Uri,来查询联系人信息,类似于数据库的查询方法。...contactsList.clear(); do { /* * 获取联系人姓名...ListView控件中,这个方法中 首先调用了ContentResolver类的query方法并且传入储存联系人信息那张数据表的Uri,用于查询联系人信息那张数据表的数据,之后对查询的返回结果Cursor...在这里,如果你用的是模拟器,并且模拟器中没有联系人的话要添加几个联系人。不然就显示的是空界面。这个需要注意一下 如果博客中有什么不正确的地方,还请多多指点。 谢谢观看。。。

    2K10

    在Windows Mobile上实现自动拼写和匹配建议

    使用Windows Mobile手机的朋友,应该有一个体会,那就是要查找某个联系人,在输入目标联系人名字的过程中,系统会实时按照所输入的内容来筛选,呈现在列表中,供用户选择。...同样,如果我们要直接拨打电话,在输入电话号码的过程中,系统也会实时地将输入的号码和联系人库进行比较,将匹配的联系人显示在列表中,供用户选择。    ...在我看来,这个自动拼写建议是非常有用的,至少目前很多软件(诸如各类输入法等)都有这个功能。那么,如何来实现这个功能呢?如何在自己的应用程序中添加这个Feature呢?...接着,启动我们的应用程序,给出的例子是这样的,我们可以发送短信息给某个朋友,在输入其姓名的过程中,系统会和联系人库进行比较,将匹配的人显示出来,供用户选择。...如下图2所示:在Recipient中,我只输入了头一个字母“s”,在输入法的上方就出现了联系人中匹配的信息。 ?

    77390

    风控数据体系-简介

    90天的月数 4.1.5.2 运营商报告 身份证号归属地 手机号码归属地 手机运营商 一阶联系人黑名单个数 借款人的一阶联系人中,被认定为黑名单的个数/人数 一阶联系人逾期个数 借款人的一阶联系人中,借款发生逾期的个数.../人数 一阶联系人逾期m3+个数 借款人的一阶联系人中,历史逾期天数大于等于90天,包含逾期还清 一阶联系人黑名单数占比 一阶联系人逾期占比 二阶联系人黑名单个数 借款人的二阶联系人中,被认定为黑名单的个数.../人数 二阶联系人逾期个数 借款人的二阶联系人中,借款发生逾期的个数/人数 二阶联系人逾期m3+个数 借款人的二阶联系人中,历史逾期天数大于等于90天,包含逾期还清 主叫联系人数 主叫联系人数 主叫联系人黑名单个数...主叫联系人中,被认定为黑名单的人数 主叫联系人逾期个数 主叫联系人中,当前逾期天数大于等于4天 夜间通话人数 夜间通话次数 夜间通话秒数 与虚拟号码通话人数、次数、秒数 异地通话人数、次数、秒数 与澳门通话人数...,即借款人的二度关联人 一阶联系人黑名单个数 借款人的一阶联系人中,被认定为黑名单的个数/人数 一阶联系人逾期个数 借款人的一阶联系人中,借款发生逾期的个数/人数 主叫联系人 借款人主动拨打的联系人 “

    4.2K66
    领券