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

根据ID检索联系人信息(Android)

根据ID检索联系人信息(Android)是指在Android开发中,根据给定的联系人ID来检索联系人的相关信息。下面是一个完善且全面的答案:

根据ID检索联系人信息是在Android开发中常见的操作之一。在Android系统中,联系人信息存储在系统的通讯录中,每个联系人都有一个唯一的ID用于标识。通过使用这个ID,我们可以方便地检索到特定联系人的详细信息。

在Android开发中,可以使用ContentResolver类和ContactsContract类来实现根据ID检索联系人信息的功能。以下是一个示例代码:

代码语言:java
复制
// 定义要查询的联系人ID
String contactId = "123";

// 构建查询条件
String[] projection = {ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.Contacts.PHOTO_URI};
String selection = ContactsContract.Contacts._ID + " = ?";
String[] selectionArgs = {contactId};

// 执行查询
Cursor cursor = getContentResolver().query(
    ContactsContract.Contacts.CONTENT_URI,
    projection,
    selection,
    selectionArgs,
    null
);

// 处理查询结果
if (cursor != null && cursor.moveToFirst()) {
    String displayName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
    String photoUri = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.PHOTO_URI));

    // 输出联系人信息
    Log.d("Contact Info", "Name: " + displayName);
    Log.d("Contact Info", "Photo URI: " + photoUri);
}

// 关闭游标
if (cursor != null) {
    cursor.close();
}

上述代码中,首先定义了要查询的联系人ID,然后构建了查询条件。通过调用getContentResolver().query()方法执行查询,传入查询条件和投影(要查询的字段),并获取返回的Cursor对象。最后,通过Cursor对象可以获取到联系人的详细信息,如显示名称和头像URI。

根据ID检索联系人信息在实际应用中有很多应用场景,比如在通讯录应用中根据联系人ID显示联系人详情,或者在某些应用中需要根据联系人ID进行相关操作等。

腾讯云提供了丰富的云服务和产品,其中与Android开发相关的产品包括腾讯移动分析、腾讯移动推送等。这些产品可以帮助开发者更好地分析和推送移动应用的数据。具体产品介绍和相关链接如下:

  1. 腾讯移动分析:提供全面的移动应用数据分析服务,帮助开发者了解用户行为、应用性能等。了解更多信息,请访问腾讯移动分析
  2. 腾讯移动推送:提供高效可靠的移动应用消息推送服务,支持Android和iOS平台。了解更多信息,请访问腾讯移动推送

以上是根据ID检索联系人信息(Android)的完善且全面的答案。希望对您有帮助!

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

相关·内容

Android根据资源名获取资源ID

接触过Android开发的同学们都知道在Android中访问程序资源基本都是通过资源ID来访问。这样开发起来很简单,并且可以不去考虑各种分辨率,语言等不同资源显式指定。...痛点 但是,有时候也会有一些问题,比如我们根据服务器端的值取图片,但是服务器端绝对不会返回给我们的是资源id,最多是一种和文件名相关联的值,操作资源少的时候,可以维护一个容器进行值与资源ID的映射,但是多的话...便捷的方法 在这种情况下,使用文件名来得到资源ID显得事半功倍。 通过调用Resources的getIdentifier可以很轻松地得到资源ID。...defType和defPackage省略时,需要将其设置成null 注意这个方法不提倡,因为直接通过资源ID访问资源会更加效率高 如果资源没有找到,返回0,在Android资源ID中0不是合法的资源ID...lineos:false android.content.res.Resources.class 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

3.5K10
  • Android小程序实现访问联系人

    (内容提供器)是所有应用程序之间数据存储和检索的一个桥梁,其作用是是各个应用程序之间能共享数据;主要功能是存储、检索数据并向应用程序提供访问数据的接口。.../调用getContactInfo()方法获取联系人信息 String result = getContactInfo(); //设置文本框的颜色 textview.setTextColor(textcolor...textview.setTextSize(20.0f); //设置文本框的文本 textview.setText("记录\t 名字\n"+result); } //getContactInfo()获取联系人列表的信息...:name="android.permission.READ_CONTACTS" / (4)实现效果: 在联系人中添加几个联系人: 运行程序,手机里的所有联系人ID及名字就会记录下来: ?...运行程序,手机里的所有联系人ID及名字就会记录下来: ? 以上就是本文的全部内容,希望对大家的学习有所帮助。

    80920

    获取系统的联系人信息

    -journal,这个文件和数据库的事务相关 联系人应用数据库的主要结构 raw_contacts 联系人表 contact_id 联系人id data数据表 raw_contact_id联系人id,...mimetype_id数据类id,data1数据 mimetypes类型表 1 email,5 phone,7 name 查询所有的联系人信息: 查询raw_contacts表把联系人id取出来 根据id...查询data表,把所有的数据取出来 根据数据的mimetype_id查询mimetypes表获取数据的业务类型 查询系统源代码,找到providers/Contacts相关的,先找清单文件,看到<Provider...和值new String[]{id} 世面上的很多应用都是取出了联系人信息,社交应用一般都有发送信息给对方,读取系统联系人 需要定义权限:<uses-permission android:name=".../raw_contacts"); Uri dataUri=Uri.parse("content://com.android.contacts/data"); //循环联系人

    86120

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

    第二层:RawContracts层,由Data层的多条数据组合成一个完整的联系人信息。 第 三层:Contracts层,这一层主要注意与第二层的区别。...name” 邮件 对应“vnd.android.cursor.item/email_v2” 根据mimetype确定data的类型 2....该表保存了联系人的RawContactID、ContactID、联系次数、最后一次联系的时间、是否被添加到收藏夹、显示的名字、用于排序的汉语拼音等信息。...3 Uri dataUri = Uri.parse (“content://com.android.contacts/data”); data表 Ø 该表保存了所有创建过的手机测联系人的所有信息,每个字段占一行...Ø 联系人的所有信息保存在列data1至data15中,各列中保存的内容根据MimeTypeID的不同而不同。

    94510

    安卓第九夜 狂风

    该方法将返回某个categoryId下的所有Contact数据,也就是某个目录下的所有联系人信息。 我将在后面使用这一新增方法。...然而,我可以把类别信息传递给同一个下游页面,让该下游页面根据类别,进行不同的处理。这个数据传递的任务,将由Intent完成。从概念漫游(上)中,我们已经知道,Intent就像传令兵。...提取出的Contact表,通过ListView和ContactAdapter,显示为联系人的条目页面。在点击条目后,URL信息放入Intent中,并启动下游的BlogActivity。...BlogActivity根据Intent中的URL,来打开联系人的网页。...练习 根据之前提到的adb shell,为数据库增加Category和Contact记录。 ? 联系人条目 使用WebView 下面我要添加BlogActivity。

    89170

    2-AIV--使用ContentProvider查询联系人

    零、前言 [1].顾名思义,内容提供者,目的:实现跨进程间数据共享 [2].基于数据库提供数据 [3].如电话簿,短信,歌曲信息都是以数据库存储存储,都可以通过ContentProvider获取...下,根据contact_id查询data表字段, 然后判断mimetype的值,新建实体类,将数据设置到实体中, 将实体放入实体集合,查完返回集合。...联系人数据库 ? 联系人.png 我们关注的时三张表: 1.raw_contacts 关注一个字段contact_id ?...dataCursor.moveToNext()) { String result = dataCursor.getString(0); //[4.4]根据实体类判断数据...:这个比较耗时,要不要酌情处理,所以封装个方法,没有直接写在上面的方法中 /** * 根据号码获得联系人头像 * * @param ctx 上下文

    53810

    Android 四大组件学习之ContentProvider四

    本节我们学习如何获取系统的联系人,以及插入一条联系人 好,废话不多说了,直接操作。 首先和读取短信一样,先找到联系人在数据库中的位置。...); while(contactId.moveToNext()) { /* * 拿到contact_id接着到data表中去根据raw_contact_id获取mimetype_id.../** * "content://com.android.contacts/data"是访问data表的url * 通过id也就是contact_id去data表中找,data1, raw_contact_id...而mimetype_id由于Android系统为我们自己优化了一些细节,当你在data表中找mimetype_id是找不到的 * android系统直接将mimetype_id转变为找mimetype...注意: 读取联系人,短信等信息都需要加上权限的: 既然知道如何从系统中获取联系人,那就应该会为系统插入一条联系人的记录。

    22210

    Android读取短信和联系人

    raw_contacts表,我们通信录中要显示的信息必须要在这里找到对应的ID,当我们删除了联系人,data表中的数据并没有删除,只是删除了证张表contact_id变为null,而不是真的删除 ?..."/> 如过是Android 6.0以上的版本还要动态获取权限 获取联系人的效果图 ?...来获取_ID和DISPLAY_NAME * _ID联系人的索引 * 通过这个ID可以在ContactsContract.CommonDataKinds.Phone.CONTENT_URI...中找到该联系人的电话号码 * 通过这个ID可以在ContactsContract.CommonDataKinds.Email.CONTENT_URI 找到该联系人的邮箱...", c.toString()); } 看起来好像有点复杂,我们先看看下面的图片再去看代码,可能会容易理解,这些代码一共操作了3个表,严格来说是视图,在这3个表中获得他们共同的ID根据

    2.6K30

    android学习笔记----内容提供者

    /databases/contacts2.db 可以看到: data1里面存储的是所有联系人信息 data表里面的raw_contact_id 实际上是raw_contact表的contact_id...,根据raw_contact_id读取data1列、mimetype列(注意不能直接读出mimietype_id列) 暗示相关代码在com.android.contacts目录 根目录: /packages..." /> 华为荣耀V9,android8.0.0真机调试: 之所以会有重复信息,而且只查得到名字和mimetype类型却查不到其他信息是因为我们之前有过多次操作,其他的应用QQ、微信 都会操作我们的联系人数据库...提示:设置手机联系人数据库的时候,哪怕我们删除了某联系人信息,其实在数据库里信息仍然存在,只是把contact_id置为了null,这样拿到别人手机店里恢复联系人也是用这个原理 插入联系人: 1.先往...raw_contact表的contact_id列插入数据 2.同步到data表,data1列存储的是所有联系人数据   (7.0的模拟器测试成功,但是8.0的真机失败,不知道是不是个人手机问题,插入之后显示无姓名等信息

    41520
    领券