如您需要在Android系统手机上添加联系人请进入“联系人”——“MENU”——“导入联人”——“MENU——“全部导入”——Device 就把所有SIM上联系人导入到设备上了。(上述内容仅适用于广东联通用户)
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:做网站、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的苏尼特左网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
1、应用中启动另一个Activity,返回结果
Intent intent = new Inent(MainActivity.this, SecondActivity.class);
startActivityForResult(Intent intent, int requestCode) 启动指定的Activity,并等待返回的结果,由回调方法处理返回结果
onActivityResult(int requestCode, int resultCode, Intent data) 方法处理返回的结果,Intent返回结果数据
2、调用Android系统联系人,选择确定返回结果
同以上的步骤,关键是打开系统的查找联系人,如何返回数据的处理。注意, 查找联系人,显示的是每一行数据,实际返回是的一行数据包括联系人电话,姓名,Email, 处理的方法,是通过Intent拿到Uri , ContentResolver,来处理每一条数据。
//打开系统联系人,查找
Intent intent = newIntent(Intent.ACTION_PICK,android.provider.ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, 1);
一、 联系人数据库 联系人的数据库文件的位置 /data/data/com.Android.providers.contacts/databases.contacts2.db 数据库中重要的几张表 1、contacts表 该表保存了所有的手机测联系人,每个联系人占一行,该表保存了联系人的 ContactID、联系次数、最后一次联系的时间、是否含有号码、是否被添加 到收藏夹等信息。 2、raw_contacts表 该表保存了所有创建过的手机测联系人,每个联系人占一行,表里有一列标 识该联系人是否被删除,该表保存了两个ID:RawContactID和ContactID, 从而将contacts表和raw_contacts表联系起来。该表保存了联系人的 RawContactID、ContactID、联系次数、最后一次联系的时间、是否被添 加到收藏夹、显示的名字、用于排序的汉语拼音等信息。 3、 mimetypes 该表定义了所有的MimeTypeID,即联系人的各个字段的唯一标志。4、data表 该表保存了所有创建过的手机测联系人的所有信息,每个字段占一行 ,该表 保存了两个ID:MimeTypeID和RawContactID,从而将data表和 raw_contacts表联系起来。 联系人的所有信息保存在列data1至data15中,各列中保存的内容根据 MimeTypeID的不同而不同。如保存号码(MimeTypeID=5)的那行数据中, data1列保存号码,data2列保存号码类型(手机号码/家庭号码/工作号码等)。二、对联系人的基本操作 这里的基本操作只是针对手机测的联系人,(U)SIM侧的联系人的操 作后续介绍。 如果对联系人的基本操作,我们必须得到许可。 方法就是在AndroidManifest.xml文件中配置如下权限: uses-permission android:name="android.permission.READ_CONTACTS" / uses-permission android:name="android.permission.WRITE_CONTACTS" /
获取联系人在Android开发中经常会遇到,最近项目需要用到获取手机联系人的功能,于是写了一个先查询联系人id然后再根据id查询手机号demo,结果慢到怀疑人生(亲测联系人数据1500+)。最后经过优化查询方式后,查询时间在200ms左右(亲测联系人数据1500+)在这里分享给大家,以方便自己好直接拿来用。国际惯例,注:以下测试只查询名字和手机号码
1、查询所有联系人
2、通过姓名获取联系人
3、通过手机号码查询联系人
最后附上源码: