获取联系人就比较复杂了,其表结构也比较复杂,我们获取联系人的姓名、电话号码、邮箱,要通过3张表去提取 数据库所在位置data-->data中的下面路径 ?...", name='" + name + '\'' + '}'; } } 最后别忘了加上权限 如过是Android 6.0以上的版本还要动态获取权限 获取联系人的效果图 ?...中找到该联系人的电话号码 * 通过这个ID可以在ContactsContract.CommonDataKinds.Email.CONTENT_URI 找到该联系人的邮箱
Introduction To Android Contacts Learn to work with the Android contacts database....; import android.database.Cursor; import android.os.Bundle; import android.provider.ContactsContract;...getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); // 获取手机联系人...这个permission 运行结果: ?...代码示例 参考推荐: Working With Android Contacts Android Contacts的使用
调用系统联系人列表 Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI); startActivityForResult... } 11 } 12 super.onActivityResult(requestCode, resultCode, intent); 13 } 解析联系人信息
作者 / Android 系统 UI 高级产品经理 Stefan Frank 博士 我们将为大家陆续带来 #11WeeksOfAndroid 系列内容,深入探讨 Android 的各个关键技术点,您不会错过任何重要内容...聊天快捷方式的另一种用途是在系统共享表中共享目标,Android 10 就已推出此功能。 本周的另一个要点是身份 (Identity)。...视频资源 如需要进一步了解这些 "以人为本" 的功能,我们建议您查看关于联系人的 Android 11 发布精选片段。...此外,您还可以观看 Dan 发表的关于聊天新增功能的 精彩概览演讲 和其他系统 UI 更新。最后,您还可以收听 Chet 的播客,听听他就 联系人 和 Bubble 与我们的沟通。...您对 "联系人和身份" 相关关键知识点掌握多少?欢迎加入测试,赢取限量版徽章。 知识点 Android 11 是我们持续优化用户、联系人以及聊天等重要功能的起点。
记得在我刚接触Android的时候对系统联系人中的特效很感兴趣,它会根据手机中联系人姓氏的首字母进行分组,并在界面的最顶端始终显示一个当前的分组。...AlphabetIndexer,我们就可以通过它的getPositionForSection和getSectionForPosition方法,找出当前位置所在的分组,和当前分组所在的位置,从而实现类似于系统联系人的分组导航和挤压动画效果...我们来看一下系统联系人的raw_contacts这张表(/data/data/com.android.providers.contacts/databases/contacts2.db),这个表结构比较复杂...toUpperCase(); if (key.matches("[A-Z]")) { return key; } return "#"; } } 可以看到,在onCreate方法中,我们从系统联系人数据库中去查询联系人的姓名和排序键...系统联系人全特效实现(下),字母表快速滚动 。
在上一篇文章中,我和大家一起实现了类似于Android系统联系人的分组导航和挤压动画功能,不过既然文章名叫做《Android系统联系人全特效实现》,那么没有快速滚动功能显然是称不上"全"的。...如果还没有看过我上一篇文章,请抓紧去阅读一下 Android系统联系人全特效实现(上),分组导航和挤压动画 。...包括以前老版本的Android联系人中都是使用这种方式来进行快速滚动的。效果如下图所示: ?...; /** * 用于进行字母表分组 */ private AlphabetIndexer indexer; /** * 存储所有手机中的联系人 */ private List...当你的手指在右侧字母表上滑动时,联系人的列表也跟着相应的变动,并在屏幕中央显示一个当前的分组。 现在让我们回数一下,分组导航、挤压动画、字母表快速滚动,Android系统联系人全特效都实现了。
Android 获取系统联系人信息的实例 一、获取手机联系人姓名及手机号 //跳转到系统联系人应用 Intent intent = new Intent(Intent.ACTION_PICK,..."); } 添加权限申请 <uses-permission android:name="android.permission.READ_CONTACTS" / 选择联系人并返回...cursor = getContentResolver().query(contactData, null, null, null, null); //Key联系人姓名...,Value联系人手机号 Map<String, String phoneMap = this.getContactPhone(cursor); if (!...* * @param cursor * @return Key为联系人姓名,Value为联系人手机号 */ private Map<String, String
只要是开发和手机通讯录有关的应用,总要学会获取联系人信息,每次都google很麻烦,怎么办?...; import android.database.Cursor; import android.provider.ContactsContract.CommonDataKinds.Email; import...; import android.provider.ContactsContract.Data; import android.util.Log; /** * * @author larson * *.../contacts; // ContactsContract.Data.CONTENT_URI = content://com.android.contacts/data; /** * 获取联系人信息,...,通过id排序,我们看下android联系人的表就知道,所有的联系人的数据是由RAW_CONTACT_ID来索引开的 // 所以,先获取所有的人的RAW_CONTACT_ID Cursor cursor
今天的主题就是仿联系人界面。相信大家在平时都见过,就是可以实现快速索引的侧边栏。比如在美团中选择城市的界面: 美团中选择城市的界面 我们可以看到在右侧有一个支持快速索引的栏。
内容提供是实质上是个接口,后门,他给别人提供数据,系统联系人是个比较复杂的内容通过者。...-journal,这个文件和数据库的事务相关 联系人应用数据库的主要结构 raw_contacts 联系人表 contact_id 联系人id data数据表 raw_contact_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"); //循环联系人表
本文实例为大家分享了Android实现访问联系人的具体代码,供大家参考,具体内容如下 要求: 编写程序,使用ContentProvider实现访问联系人 ContentProvider类的作用: ContentProvider...android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract.Contacts; import...="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android...:name="android.permission.READ_CONTACTS" / (4)实现效果: 在联系人中添加几个联系人: 运行程序,手机里的所有联系人的ID及名字就会记录下来: ?...运行程序,手机里的所有联系人的ID及名字就会记录下来: ? 以上就是本文的全部内容,希望对大家的学习有所帮助。
下面直接贴代码 1.先写一个实体类,来放名字和号码 public class PhoneDto { private String name; //联系人姓名...> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:...tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto"...android:layout_width="match_parent" android:layout_height="match_parent" tools..." android:layout_height="match_parent" android:id="@+id/lv_main_list"></ListView
在之前项目中有用到关于获取手机联系人的部分,闲置就想和大家分享一下,话不多说,上代码: java部分: package com.example.content; import android.content.ContentResolver...<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com...android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="获取手机联系人..." android:onClick="getContacts" / </LinearLayout 在需要获取系统的东西的时候一定不要忘记给权限啊 AndroidManifest.xml...--获取手机的联系人-- <uses-permission android:name="android.permission.READ_CONTACTS" </uses-permission
本文实例为大家分享了Android实现手机联系人读取和插入的具体代码,供大家参考,具体内容如下 目标效果: ? ?...先在模拟器随便添加两个联系人,运行程序,再打开联系人,发现多了联系人“张三”,并且日志输出了三给安溪人的姓名和手机号码还有号码类型。...; import android.app.Activity; import android.content.ContentResolver; import android.content.ContentUris...; import android.content.ContentValues; import android.database.Cursor; import android.util.Log; import...DISPLAY_NAME")); Log.i("MainActivity","_ID "+id); Log.i("MainActivity","DISPLAY_NAME "+name); /*根据id查询联系人的电话号码
利用AsyncQueryHandler能异步任务获取手机联系人,增加用户体验,使用起来也很方便。不多说,上干货。 布局文件main.xml <?...<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com...:layout_width="fill_parent" android:layout_height="wrap_content" android:text="获取联系人信息" /...int contactId;//联系人ID private String displayName;//联系人姓名 private String phoneNum;//联系人手机号 private...URI Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI; // 联系人ID,联系人NAME, String[] projection
Android 的SMS读取短信,可以获取发信人/收信人的手机号码(address),Contacts的联系人,可以过滤手机号码(address),因此SMS可以通过手机号码(address)关联到...Contacts联系人 SMS - Contacts 关联代码 // 通过address手机号关联Contacts联系人的显示名字 private String getPeopleNameFromPerson...; import android.util.Log; import android.widget.ScrollView; import android.widget.TextView; public...getSmsInPhone", ex.getMessage()); } return smsBuilder.toString(); } // 通过address手机号关联Contacts联系人的显示名字...示例代码 参考推荐: Android 之 Contacts 联系人读取
具体哪些独立的数据可以占一行,可以在mimetypes这张表中找到, 原生Android的系统 一共12种,例如name,phone,email ect.....“mimetype”是电话 或者 姓名 的标示符编码: 例如:电话 对应“vnd.android.cursor.item/phone_v2” 姓名 对应“vnd.android.cursor.item/...Uri uri = Uri.parse(“content://com.android.contacts/raw_contacts”); raw_contacts表 该表保存了所有创建过的手机测联系人,每个联系人占一行...3 Uri dataUri = Uri.parse (“content://com.android.contacts/data”); data表 Ø 该表保存了所有创建过的手机测联系人的所有信息,每个字段占一行...Ø 联系人的所有信息保存在列data1至data15中,各列中保存的内容根据MimeTypeID的不同而不同。
对应着读联系人,把数据写进去,市场上的社交类应用经常会有这样的功能 向raw_contacts表中添加一个id 向data表里面添加对应的数据 获取ContentResolver对象,通过getContentResolver.../phone_v2”,”data1”=>”电话号码” 然后添加姓名,和上面一样只不过在ContentValues对象里面, Put “mimietype”=>”vnd.android.cursor.item.../raw_contacts"); Uri dataUri=Uri.parse("content://com.android.contacts/data"); //查出最后一个...cursor.moveToLast(); int lastId=cursor.getInt(0); int newId=lastId+1; //插入一个联系人..."police1"); resolver.insert(dataUri, data1Values); Toast.makeText(this, "写联系人成功
前言 因为自己在做的一个小软件里面需要用到从A-Z排序的ListView,所以自然而然的想到了微信的联系人,我想要的就是那样的效果。
上一篇文章讲了如何获取所有联系人,这篇文章就讲下怎么保存联系人数据到本机通讯录。这里我就假设你已经拿到了要保存的联系人数据。...因为是一个工具类,所以我这里就只给一个方法了,也是很简单,但是写的没有读取联系人的数据那么多,要保存更多其实看下如何读取的就会了。...直接上源码: /** * 添加联系人到本机 * * @param context * @param contact * @return */ public static boolean addContact...try { ContentValues values = new ContentValues(); // 下面的操作会根据RawContacts表中已有的rawContactId使用情况自动生成新联系人的
领取专属 10元无门槛券
手把手带您无忧上云