读取联系人和添加联系人

bean类Contact:

 1 import java.util.ArrayList;
 2 import java.util.List;
 3
 4 public class Contact {
 5     private String name;
 6     private String email;
 7     private String address;
 8     private List<String> phone = new ArrayList<String>();
 9
10     public Contact() {
11         super();
12         // TODO Auto-generated constructor stub
13     }
14
15     public Contact(String name, String email, String address, List<String> phone) {
16         super();
17         this.name = name;
18         this.email = email;
19         this.address = address;
20         this.phone = phone;
21     }
22
23     public String getName() {
24         return name;
25     }
26
27     public void setName(String name) {
28         this.name = name;
29     }
30
31     public String getEmail() {
32         return email;
33     }
34
35     public void setEmail(String email) {
36         this.email = email;
37     }
38
39     public String getAddress() {
40         return address;
41     }
42
43     public void setAddress(String address) {
44         this.address = address;
45     }
46
47     public List<String> getPhone() {
48         return phone;
49     }
50
51     public void setPhone(List<String> phone) {
52         this.phone = phone;
53     }
54 }

Contact

读取联系人:

 1 import java.util.ArrayList;
 2 import java.util.List;
 3
 4 import android.app.Activity;
 5 import android.content.ContentResolver;
 6 import android.database.Cursor;
 7 import android.net.Uri;
 8 import android.os.Bundle;
 9 import android.util.Log;
10 public class MainActivity extends Activity {
11     private static final String TAG = "MainActivity";
12     @Override
13     protected void onCreate(Bundle savedInstanceState) {
14         super.onCreate(savedInstanceState);
15         setContentView(R.layout.activity_main);
16         readContact();
17     }
18
19     public List<Contact> readContact() {
20         List<Contact> list ;
21         ContentResolver resolver = getContentResolver();
22         Uri raw_contactUri = Uri.parse("content://com.android.contacts/raw_contacts");
23         Cursor cursor = resolver.query(raw_contactUri, new String[] { "contact_id" },
24                 null, null, null);
25         if (cursor != null && cursor.getCount() > 0) {
26             list= new ArrayList<Contact>();
27             while (cursor.moveToNext()) {
28                 Integer contact_id = cursor.getInt(0);
29                 Uri dataUri = Uri.parse("content://com.android.contacts/data");
30                 String selection = "raw_contact_id=?";
31                 String[] selectionArgs = new String[] { String.valueOf(contact_id) };
32                 Cursor cursor_data = resolver.query(dataUri, new String[] { "mimetype",
33                         "data1" }, selection,
34                         selectionArgs, null);
35                 if (cursor_data != null && cursor_data.getCount() > 0) {
36                     Contact contact = new Contact();
37                     while (cursor_data.moveToNext()) {
38                         String mimetype = cursor_data.getString(0);
39                         String data1 = cursor_data.getString(1);
40                         if ("vnd.android.cursor.item/name".equals(mimetype)) {
41                             contact.setName(data1);
42                         } else if ("vnd.android.cursor.item/postal-address_v2".equals(mimetype)) {
43                             contact.setAddress(data1);
44                         } else if ("vnd.android.cursor.item/email_v2".equals(mimetype)) {
45                             contact.setEmail(data1);
46                         } else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {
47                             contact.getPhone().add(data1);
48                         }
49                         list.add(contact);
50                         Log.i(TAG, "mimetype=" + mimetype + "\tdata1=" + data1);
51                     }
52                     cursor_data.close();
53                 }
54             }
55             cursor.close();
56             Log.i(TAG, "----------");
57             return list;
58         }
59         return null;
60     }
61
62 }

readContact

添加联系人:

public void writeContact()
    {
        //1.获得访问内容提供者的工具类
        ContentResolver resolver = getContentResolver();
        //2. 获取到已存入联系人数据库里面的最后一个联系人的contact_id,然后在加1 就是现在要添加的练习题的contact_id
        Uri raw_contact_uri = Uri.parse("content://com.android.contacts/raw_contacts");
        Cursor cursor = resolver.query(raw_contact_uri, new String[]{"contact_id"}, null,
                null, "contact_id desc limit 1");
        Integer max_contact_id = 0;
        if(null != cursor && cursor.moveToFirst())
        {
            max_contact_id = cursor.getInt(0);
        }

        max_contact_id = max_contact_id + 1;
        //3. 往raw_contact表里面添加contact_id
        ContentValues values = new ContentValues();
        values.put("contact_id", max_contact_id);

        raw_contact_uri = resolver.insert(raw_contact_uri, values);
        Log.i(TAG, "raw_contact_uri=" + raw_contact_uri);
        //4. 往data里面添加数据(姓名,email,address,phone等信息)
        //注意:一个信息是一样记录,所以添加一个联系人的多个信息的时候要执行多个insert操作
        Uri data_uri = Uri.parse("content://com.android.contacts/data");

        values.clear(); //复用之前一定要清空否则会影响下面的插入操作
        values.put("raw_contact_id", max_contact_id);
        values.put("mimetype", "vnd.android.cursor.item/name");
        values.put("data1", "1505");
        resolver.insert(data_uri, values);

        values.clear(); //复用之前一定要清空否则会影响下面的插入操作
        values.put("raw_contact_id", max_contact_id);
        values.put("mimetype", "vnd.android.cursor.item/email_v2");
        values.put("data1", "[email protected],com");
        resolver.insert(data_uri, values);

        values.clear(); //复用之前一定要清空否则会影响下面的插入操作
        values.put("raw_contact_id", max_contact_id);
        values.put("mimetype", "vnd.android.cursor.item/phone_v2");
        values.put("data1", "16824524");
        resolver.insert(data_uri, values);

        values.clear(); //复用之前一定要清空否则会影响下面的插入操作
        values.put("raw_contact_id", max_contact_id);
        values.put("mimetype", "vnd.android.cursor.item/postal-address_v2");
        values.put("data1", "西安路");
        resolver.insert(data_uri, values);
    }

writeContact

时间: 2024-11-08 03:41:11

读取联系人和添加联系人的相关文章

ContentProvider往通讯录添加联系人和获取联系人

在Android中,可以使用ContentResolver对通信录中的数据进行添加.删除.修改和查询操作. 在对联系人进行操作时需加入以下两个权限 <!-- 添加操作联系人的权限 --><uses-permission android:name="android.permission.READ_CONTACTS" /><uses-permission android:name="android.permission.WRITE_CONTACTS&

1 读取、添加联系人

--------------main.java----------------- package com.example.vd; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.content.ContentResolver; import android.database.Cursor; import android

android批量添加联系人

研究生期间就没写过Java代码了,这几天由于想做一个统计网页词频的工具,但是使用C++不是很方便,于是又用Java做了一个小工具.翻开电脑中以前的文件,发现之前还做过一个android中批量添加联系人的工具,瞬间感觉好亲切,也感叹时间过得好快,一眨眼研究生就快要过完了. 记得当初做这个批量添加联系人的工具是刚来读研时,一大堆新同学的手机号码需要添加,班长整理出来同学们的通讯录后就得一个一个输入联系人和号码到手机中,想想这罪可有的受,于是就想能不能让手机直接读取xls格式(Excel格式)的文件到

Android批量添加联系人到通讯录

由于工作上的需要,把数据库中备份的联系人添加到通讯录,一般都有几百条记录,插入一条数据系统默认commit一次,这样效率就降低了,如果把所有的数据都添加进去后再commit效率就不一样,这就需要事务 没有添加事务的方法,每次添加一条记录 /** * 单条添加数据 * * @param contacts * @return */ public boolean add(Tb_contacts contacts) { SQLiteDatabase db = helper.getWritableData

Android读取短信和联系人

读取短信和联系人经常会用到,要了解的是这是内容提供者的知识点 先说短信,要从数据库中获取数据,就要了解其结构 短信数据库在data-->data中的下面路径 它的表结构如下,有3个是我们要注意的 Java代码为 //获取内容提供者 ContentResolver contentResolver = getContentResolver(); //获取短信表的路径 Uri uri = Uri.parse("content://sms"); //设置要查询的列名 String[] l

Lync Server 2010批量添加联系人并同步联系人

最近一直帮助朋友整理Lync Server 2010,总是听他抱怨说微软的Lync不能实现组织结构等方面的联系人列表,其实也不完全没办法实现,早在OCS的年代,OCS利用Restkit tool工具进行添加联系人列表,而到了Lync的时代虽然Restkit Tool工具还在,但是已然无法利用之前的方式进行批量添加联系人了,在网上有人表示利用LyncAddContacts.vbs这个工具进行批量添加,但是所有的文章只是把国外这个作者的写的东西照抄过来并且翻译一下就成为原创发布到网络上,本人觉得现在

iOS开发--系统通讯录的访问与添加联系人

公司项目有访问通讯录的需求,所以开始了探索之路.从开始的一无所知,到知识的渐渐清晰.这一切要感谢广大无私分享的 “coder”,注:我是尊称的语气! 苹果提供了访问系统通讯录的框架,以便开发者对系统通讯录进行操作.(此demo为纯代码),想要访问通讯录,需要添加AddressBookUI.framework和AddressBook.framework两个框架,添加的地点这里就不在赘述了.在控制器内部首先import两个头文件,<AddressBook/AddressBook.h> 和 <

很多人很想知道怎么扫一扫二维码就能打开网站,就能添加联系人,就能链接wifi,今天做个demo(续集)

有些功能部分手机不能使用,网站,通讯录,wifi基本上每个手机都可以使用.(浏览器自带的扫描就够了,QQ扫码和微信扫码部分手机不能直接连接wifi) 在看之前你可以扫一扫下面几个二维码先看看效果: 上篇网站介绍了一下常用格式(http://www.cnblogs.com/dunitian/p/4998714.html),其实扫二维码的本质就是解析出一段字符串,为什么有一些神奇的功能呢?那是字符串的格式满足一些系统内置的协议或者格式,所以系统就帮你干了类似于发短信,打电话,添加联系人,连接wifi

【JAVAEE学习笔记】hibernate03:多表操作,级联练习:添加联系人

一.一对多|多对一 1.关系表达 表中的表达 实体中的表达 orm元数据中表达 一对多 <!-- 集合,一对多关系,在配置文件中配置 --> <!-- name属性:集合属性名 column属性: 外键列名 class属性: 与我关联的对象完整类名 --> <set name="linkMens" inverse="true" cascade="delete" > <key column="lk