Android中联系人的操作(读取和写入联系人)
来源:互联网 发布:如何做淘宝供货商 编辑:程序博客网 时间:2024/04/19 06:27
了解了ContentProvider之后,我们可以尝试来操作手机中的联系人。
这个操作是非常常用的,那么首先我们要了解联系人在手机数据库中是如何存储的。
联系人中,有三张表比较关键raw_contact,data.minetype.
下面的代码则是读取和写入联系人。
public class TestContact extends AndroidTestCase {public void getAllContactInfo() throws Exception{String rawbase = "content://com.android.contacts/raw_contacts";String database = "content://com.android.contacts/data";Cursor cursor = getContext().getContentResolver().query(Uri.parse(rawbase), null, null, null, null);while (cursor.moveToNext()) {String id = cursor.getString( cursor.getColumnIndex("_id"));System.out.println("id ="+ id);Cursor datacursor = getContext().getContentResolver().query(Uri.parse(database), null, "raw_contact_id=?", new String[]{id}, null);while (datacursor.moveToNext()) {//看看data表中有哪些列名//String[] names = datacursor.getColumnNames();//for(int i =0;i<names.length;i++){//System.out.println(names[i]);//}String type = datacursor.getString(datacursor.getColumnIndex("mimetype"));System.out.println(type);//取出邮箱姓名和电话号码三种数据if("vnd.android.cursor.item/email_v2".equals(type)){String data1 = datacursor.getString( datacursor.getColumnIndex("data1"));System.out.println("邮箱 "+ data1);}else if("vnd.android.cursor.item/name".equals(type)){String data1 = datacursor.getString( datacursor.getColumnIndex("data1"));System.out.println("姓名 "+ data1);}else if("vnd.android.cursor.item/phone_v2".equals(type)){String data1 = datacursor.getString( datacursor.getColumnIndex("data1"));System.out.println("电话号码 "+ data1);}}datacursor.close();}cursor.close();}//写入联系人public void writeContact() throws Exception{String rawbase = "content://com.android.contacts/raw_contacts"; ContentValues values = new ContentValues(); Uri uri = getContext().getContentResolver().insert(Uri.parse(rawbase), values); //返回的raw_contact 表中的_id long id = ContentUris.parseId(uri); String database = "content://com.android.contacts/data"; ContentValues nameValues = new ContentValues(); nameValues.put("mimetype", "vnd.android.cursor.item/name"); nameValues.put("data1", "wangwu"); nameValues.put("raw_contact_id", id); getContext().getContentResolver().insert(Uri.parse(database), nameValues); ContentValues phoneValues = new ContentValues(); phoneValues.put("mimetype", "vnd.android.cursor.item/phone_v2"); phoneValues.put("data1", "999999"); phoneValues.put("raw_contact_id", id); getContext().getContentResolver().insert(Uri.parse(database), phoneValues); ContentValues emailValues = new ContentValues(); emailValues.put("mimetype", "vnd.android.cursor.item/email_v2"); emailValues.put("data1", "wangwu@sina.cn"); emailValues.put("raw_contact_id", id); getContext().getContentResolver().insert(Uri.parse(database), emailValues);}}
0 0
- Android中联系人的操作(读取和写入联系人)
- 联系人数据的读取和写入
- 在android中读取联系人信息的程序,包括读取联系人姓名、联系方式和邮箱等
- 在android中读取联系人信息的程序,包括读取联系人姓名、联系方式和邮箱等
- 在android中读取联系人信息的程序,包括读取联系人姓名、手机号码和邮箱
- 在android中读取联系人信息的程序,包括读取联系人姓名、联系方式和邮箱等
- 在android中读取联系人信息的程序,包括读取联系人姓名、手机号码和邮箱
- Android中读取联系人
- android中ContentProvider实现联系人的读取和插入
- android中读取联系人的所有信息
- Android联系人读取操作笔记
- Android联系人读取操作笔记
- Android联系人读取操作笔记
- Android联系人读取操作笔记
- Android联系人读取操作笔记
- 读取与写入android中的联系人
- ym——Android从零开始(10)(联系人数据的读取和写入)(新)
- android 读取电话号码和联系人
- NSString内存管理
- PPP完全理解(三)
- Struts2手工编写表单验证代码
- IP数据包长度问题总结
- Android应用中平滑的手写效果实现
- Android中联系人的操作(读取和写入联系人)
- 数字三角形问题
- Linux 解压 rar文件
- android 关于屏幕适配
- shell命令与参数
- 浅谈C++中内存分配、函数调用和返回值问题
- 去掉UItableview headerview黏性(sticky)
- 常用的python模块及安装方法
- C#中调用C源代码 SM4