通讯录的内容提供者(查询手机通讯录的数据)
来源:互联网 发布:数据分析 培训 编辑:程序博客网 时间:2024/05/16 01:56
<uses-permission android:name="android.permission.READ_CONTACTS"/>
ContactInfo类(Bean)
package com.saiermeng.readcontacts.domain;public class ContactInfo { private String name; private String phone; private String email; private String qq; @Override public String toString() { return "ContactInfo [name=" + name + ", phone=" + phone + ", email=" + email + ", qq=" + qq + "]"; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getQq() { return qq; } public void setQq(String qq) { this.qq = qq; }}
工具类(ContactInfoUtils.java)
package com.saiermeng.readcontacts.utils;import java.util.ArrayList;import java.util.List;import android.content.ContentResolver;import android.content.Context;import android.database.Cursor;import android.net.Uri;import com.saiermeng.readcontacts.domain.ContactInfo;public class ContactInfoUtils { /** * 获取系统里面的全部的联系人信息 * * @param context * 上下文 * @return */ public static List<ContactInfo> getAllContactInfos(Context context) { // 1. 查询raw_contacts表, 把每个联系人的contact_id. ContentResolver resolver = context.getContentResolver(); Uri uri = Uri.parse("content://com.android.contacts/raw_contacts"); Cursor cursor = resolver.query(uri, new String[] { "contact_id" }, null, null, null); // 创建一个集合,存放所有的联系人信息 List<ContactInfo> contactInfos = new ArrayList<ContactInfo>(); while (cursor.moveToNext()) { String id = cursor.getString(0); System.out.println("联系人id:" + id); if (id != null) { ContactInfo contactInfo = new ContactInfo(); // 2. 根据contact_id 查询data表,把联系人的数据取出来. Uri dataUri = Uri.parse("content://com.android.contacts/data"); Cursor dataCursor = resolver.query(dataUri, new String[] { "data1", "mimetype" }, "raw_contact_id=?", new String[] { id }, null); while (dataCursor.moveToNext()) { String data1 = dataCursor.getString(0); String mimetype = dataCursor.getString(1); if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) { contactInfo.setPhone(data1); } else if ("vnd.android.cursor.item/email_v2" .equals(mimetype)) { contactInfo.setEmail(data1); } else if ("vnd.android.cursor.item/name".equals(mimetype)) { contactInfo.setName(data1); } else if ("vnd.android.cursor.item/im".equals(mimetype)) { contactInfo.setQq(data1); } } contactInfos.add(contactInfo); dataCursor.close(); } } cursor.close(); return contactInfos; }}
主窗体的点击事件(MainActivity.java)
package com.saiermeng.readcontacts;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.view.View;import com.saiermeng.readcontacts.domain.ContactInfo;import com.saiermeng.readcontacts.utils.ContactInfoUtils;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}/** * 把联系人信息给读取出来 * @param view */public void readContactInfos(View view){List<ContactInfo> infos = ContactInfoUtils.getAllContactInfos(this);for(ContactInfo info:infos){System.out.println(info.toString());}}}
0 0
- 通讯录的内容提供者(查询手机通讯录的数据)
- 内容提供者访问通讯录
- android 内容提供者 系统通讯录
- 手机通讯录的逻辑
- 手机通讯录的实现
- 读取通讯录的内容
- 手机通讯录的简单实现
- 构建简单的手机通讯录
- 手机通讯录AddressBook的使用
- 获取手机通讯录的坑
- Android 获取手机的通讯录
- 安卓之内容提供者获取通讯录
- 获取手机通讯录-----1.1(取出通讯录数据)
- 将自己的Access数据库通讯录导入手机通讯录
- Android 读取手机通讯录内容
- iOS 获取通讯录的数据
- 07 - 数据操作三:ContentProvider内容提供者以及通讯录操作 组件2 ContentProvider
- 手机通讯录、联系人的备份、恢复经验
- java 堆(heap)、栈(stack)和方法区(method)
- jq操作select
- android支付宝的接入流程
- (架构设计)观察者模式+redis队列实现不同项目之间数据的交互
- Android 最全面面试整理
- 通讯录的内容提供者(查询手机通讯录的数据)
- Calendar 类的应用
- hls 网络上的m3u8视频源地址(可用的)
- [译]AngularJS1.3.0 开发者指南(四) -- 控制器
- noi-7546-统计数字字符个数
- Cordova-----3、Cordova使用插件
- Java的文件相关操作
- 2017百度前端技术学院
- hibernate中文教程