Android -- ContentProvider, 读取和保存系统 联系人
2014-03-26 16:35
323 查看
1. 示例代码
需要的读写联系人的权限
读联系人代码
写联系人代码
需要的读写联系人的权限
<uses-permission android:name="android.permission.WRITE_CONTACTS"/> <uses-permission android:name="android.permission.READ_CONTACTS"/>
读联系人代码
public void click(View view) { ContentResolver resolver = getContentResolver(); // raw_contact 表的uri Uri uri = Uri.parse("content://com.android.contacts/raw_contacts"); // data 表的uri Uri dataUri = Uri.parse("content://com.android.contacts/data"); Cursor cursor = resolver.query(uri, new String[] { "contact_id" }, null, null, null); while (cursor.moveToNext()) { String id = cursor.getString(0); //系统删除联系人的时候不会删除全部db中的信息,只是将id置为 null if (id != null) { Cursor dataCursor = resolver.query(dataUri, new String[] { "data1", "mimetype" }, "raw_contact_id=?", new String[] { id }, null); while (dataCursor.moveToNext()) { String data = dataCursor.getString(0); String mimetype = dataCursor.getString(1); System.out.println("data:" + data); System.out.println("mimetype:" + mimetype); } dataCursor.close(); System.out.println("----------"); } } cursor.close(); }
写联系人代码
public void click(View view) { String name = et_name.getText().toString().trim(); String phone = et_phone.getText().toString().trim(); String email = et_email.getText().toString().trim(); if (TextUtils.isEmpty(name) || TextUtils.isEmpty(phone)) { Toast.makeText(this, "姓名或者电话不能为空", 1).show(); return; } // 把数据写入到系统的联系人. ContentResolver resolver = this.getContentResolver(); // ----------在raw_contant表中添加一条新的id--------------- Uri uri = Uri.parse("content://com.android.contacts/raw_contacts"); // 插入联系人 必须要知道 新的联系人的id Cursor cursor = resolver.query(uri, new String[] { "contact_id" }, null, null, "contact_id"); int contact_id; if (cursor.moveToLast()) { contact_id = cursor.getInt(0) + 1; // 数据库里面有数据 最后一条联系人的id + 1 } else {// 原先数据库是空的 从第一个联系人开始 contact_id = 1; } ContentValues values = new ContentValues(); values.put("contact_id", contact_id); resolver.insert(uri, values); // ----------------------------- // ------------在data表里面 添加id对应的数据------------- Uri dataUri = Uri.parse("content://com.android.contacts/data"); // 插入姓名 ContentValues nameValue = new ContentValues(); nameValue.put("data1", name); nameValue.put("raw_contact_id", contact_id); nameValue.put("mimetype", "vnd.android.cursor.item/name"); resolver.insert(dataUri, nameValue); // 插入电话 ContentValues phoneValue = new ContentValues(); phoneValue.put("data1", phone); phoneValue.put("raw_contact_id", contact_id); phoneValue.put("mimetype", "vnd.android.cursor.item/phone_v2"); resolver.insert(dataUri, phoneValue); // 插入邮箱 if (!TextUtils.isEmpty(email)) { ContentValues emailValue = new ContentValues(); emailValue.put("data1", email); emailValue.put("raw_contact_id", contact_id); emailValue.put("mimetype", "vnd.android.cursor.item/email_v2"); resolver.insert(dataUri, emailValue); } Toast.makeText(this, "插入数据成功", 0).show(); }
相关文章推荐
- Android -- ContentProvider, 读取和保存系统 联系人
- Android—ContentProvider读取系统联系人
- Android 读取系统联系人
- android中ContentProvider实现联系人的读取和插入
- Android ContentProvider 之查看/读取手机联系人
- Android wiki:15.读取系统联系人
- Android 点击按钮读取手机联系人并绑定到ListView中和点击按钮跳转系统联系人界面选中绑定至TextView
- Android ContentProvider之读取、添加联系人
- Android四大组件之一ContentProvider实现简单的联系人读取
- Android内容提供器简单实例(读取系统联系人)
- Android(java)学习笔记249:ContentProvider使用之获得系统联系人信息01
- Android 调用系统相机拍照(适配7.0)、从图库选择图片、从数据库读取联系人信息、相册图片、扫描文件
- Android-数据存储(Content Provider ,调用系统 联系人 ContentProvider实现查询和增加联系人)
- Android开发之读取系统联系人
- Android 选择系统联系人并读取联系人数据
- Android读取系统联系人
- Android内容提供者(一)读取系统联系人
- Android ContentResolver读取手机系统数据<联系人>
- 从Android系统联系人中读取某一个联系人的姓名与手机
- Android四大组件之ContentProvider获取系统的联系人及联系人电话