推荐阅读:
浅析Android手机卫士sim卡绑定
深入浅析Android手机卫士保存密码时进行md5加密
详解Android 手机卫士设置向导页面
浅析Android手机卫士关闭自动更新
浅析Android手机卫士自定义控件的属性
获取ContentResolver内容解析器对象,通过getContentResolver()方法
调用ContentResolver对象的query()方法,得到raw_contacts表里面的数据,得到Cursor对象
参数:Uri对象,字段String数组
获取Uri对象,通过Uri.parse(“content://com.android.contacts/raw_contacts”)方法,
while循环Cursor对象,条件是Cursor对象moveToNext()方法为真
调用Cursor对象的getString()方法,参数是索引
判断不为null,查询另一张表
调用ContentResolver对象的query()方法,得到data表里面的数据,得到Cursor对象
参数:Uri对象,字段String[]数组(data1,mimetype),条件String,条件值String[]数组(contact_id)
Uri对象是Uri.parse(“content://com.android.contacts/data”)
循环和上面一样
姓名对应的类型是vnd.android.cursor.item/name
电话对应的类型是vnd.android.cursor.item/phone_v2
需要权限,android.permisssion.READ_CONTACTS
调用ListView对象的setAdapter()方法,分配数据到视图,参数是Adapter对象
通过new SimpleAdapter()来获得Adapter对象
参数:上下文,数据集合,布局资源,字段String[]数组,控件int[] id数组
package com.qingguow.mobilesafe.utils; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.net.Uri; /** * 读取手机联系人 * @author taoshihan * */ html" target="_blank">public class PhoneContactsUtil { public static List<Map<String,String>> getContacts(Context context){ ContentResolver resolver=context.getContentResolver(); Uri uri=Uri.parse("content://com.android.contacts/raw_contacts"); Uri dataUri=Uri.parse("content://com.android.contacts/data"); List<Map<String,String>> contacts=new ArrayList<Map<String,String>>(); //循环联系人表 Cursor cursor=resolver.query(uri, new String[]{"contact_id"}, null, null, null); while(cursor.moveToNext()){ String id=cursor.getString(cursor.getColumnIndex("contact_id")); if(id!=null){ Map<String,String> contact=new HashMap<String,String>(); //查找数据表 Cursor dataCursor=resolver.query(dataUri, new String[]{"data1","mimetype"},"raw_contact_id=?", new String[]{id}, null); while(dataCursor.moveToNext()){ String data1=dataCursor.getString(dataCursor.getColumnIndex("data1")); String mimetype=dataCursor.getString(dataCursor.getColumnIndex("mimetype")); System.out.println("data1:"+data1+",mimetype:"+mimetype); if(mimetype.equals("vnd.android.cursor.item/name")){ contact.put("name", data1); }else if(mimetype.equals("vnd.android.cursor.item/phone_v2")){ contact.put("phone", data1); } } contacts.add(contact); dataCursor.close(); } } cursor.close(); return contacts; } }
以上内容是小编给大家介绍的android 手机卫士读取联系人的相关介绍,希望对大家有所帮助!
本文向大家介绍浅析Android手机卫士之号码归属地查询,包括了浅析Android手机卫士之号码归属地查询的使用技巧和注意事项,需要的朋友参考一下 使用小米号码归属地数据库,有两张表data1和data2 先查询data1表,把手机号码截取前7位 再查询data2表, 可以使用子查询 创建数据库工具类 新建一个包xxx.db.dao 新建一个类NumberAddressUtils,新建一个静态方法
本文向大家介绍Android手机卫士之获取联系人信息显示与回显,包括了Android手机卫士之获取联系人信息显示与回显的使用技巧和注意事项,需要的朋友参考一下 前面的文章已经实现相关的布局,本文接着进行相关的功能实现 读取系统联系人 当点击“选择联系人”按钮后,弹出联系人列表,读取系统联系人分如下几个步骤: 系统联系人提供了一个内容提供者,通过内容解析器,匹配Url地址 1.内容解析器 2.Url
本文向大家介绍Android手机卫士之绑定sim卡序列号,包括了Android手机卫士之绑定sim卡序列号的使用技巧和注意事项,需要的朋友参考一下 现在开始具体 处理每一个导航页面的逻辑,首先看第二个导航页 这里需要实现绑定sim卡序列号的功能,注意添加相应的权限:uses-permission android:name="android.permission.READ_PHONE_STATE"
本文向大家介绍Android手机卫士之确认密码对话框,包括了Android手机卫士之确认密码对话框的使用技巧和注意事项,需要的朋友参考一下 本文接着实现“确认密码”功能,也即是用户以前设置过密码,现在只需要输入确认密码 布局文件和《Android 手机卫士--设置密码对话框》中的布局基本类似,所有copy一下,修改一点细节就搞定: 代码逻辑也基本类似,简单的修改一下 以上就是本文的全部内容,希望对
本文向大家介绍Android获取手机联系人信息,包括了Android获取手机联系人信息的使用技巧和注意事项,需要的朋友参考一下 Android如何获取手机联系人信息,本文为大家揭晓。 获取手机联系人信息步骤: 1、获取 ContentResolver ContentResolver resolver = getContentResolver(); 2、resolver.query(*)查询信息 查
本文向大家介绍Android ContentProvider获取手机联系人实例,包括了Android ContentProvider获取手机联系人实例的使用技巧和注意事项,需要的朋友参考一下 在做项目的时候,因为要用到我们自动获取联系人的姓名和电话,就想到了ContentProvider分享数据的功能,这样做既节省了时间,也减少了我们输入错误号码的几率,所以,想在这里把小demo分享给大家,方便以
本文向大家介绍android项目手机卫士来电显示号码归属地,包括了android项目手机卫士来电显示号码归属地的使用技巧和注意事项,需要的朋友参考一下 昨日实现了360手机卫士的来电显示归属地的功能,具体的功能就是当来电的时候,显示当前号码的归属地,学习之后发现操作 非常的简单,具体实现代码如下: AddressService.java 设置中心,配置是否开启来电归属地显示 直接使用我们之前定义好
本文向大家介绍Android使用AsyncQueryHandler实现获取手机联系人功能,包括了Android使用AsyncQueryHandler实现获取手机联系人功能的使用技巧和注意事项,需要的朋友参考一下 利用AsyncQueryHandler能异步任务获取手机联系人,增加用户体验,使用起来也很方便。不多说,上干货。 布局文件main.xml contact.java 联系人bean文件 M