Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 562|回复: 0

[实例教程]添加联系人

[复制链接]

该用户从未签到

发表于 2011-10-22 14:08:02 | 显示全部楼层 |阅读模式
private void WriteSingleContact(Contact contact)

{

//cr 是ContentResolver

        // DELETE CONTACT

        Uri personUri = ContactsContract.RawContacts.CONTENT_URI;

        String where =ContactsContract.Contacts.DISPLAY_NAME+"=?";

        cr.delete(personUri,where,new String[] {contact.getDisplayName()});

//上面的几行代码删除某个指定联系人





//向contact 中添加联系人姓名,获得一个Id(rawContactId)作为后面添加信息的依据。

        ContentValues values = new ContentValues();

        values.put(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, contact

                .getDisplayName());

        Uri rawContactUri = cr.insert(RawContacts.CONTENT_URI, values);



        long rawContactId = ContentUris.parseId(rawContactUri);

//也可以只添加一个空ContentValues ,来获得rawContactId。

        //    ContentValues values = new ContentValues();  

        //首先向RawContacts.CONTENT_URI执行一个空值插入(raw_contacts 表), 为了获取生成的联系人 ID  

         Uri rawContactUri = this.getContext().getContentResolver().insert(RawContacts.CONTENT_URI, values);  

//?            

//?          //然后获取系统返回的rawContactId , 就是新加入的这个联系人的 ID  

//?  //        long rawContactId = ContentUris.parseId(rawContactUri);

//添加联系人姓名

        values.clear();

        values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);

        values.put(ContactsContract.Data.MIMETYPE,

                StructuredName.CONTENT_ITEM_TYPE);

        values.put(StructuredName.DISPLAY_NAME, contact.getDisplayName());

        cr.insert(ContactsContract.Data.CONTENT_URI, values);





        Uri phoneUri = null;

        Uri emailUri = null;

        Uri addressUri = null;

        Uri imUri = null;

        Uri orgUri = null;

        Uri noteUri = null;

//添加电话号码

        for (Phone aPhone : contact.getPhone()) {



            phoneUri = Uri.withAppendedPath(rawContactUri,

                    ContactsContract.Contacts.Data.CONTENT_DIRECTORY);

            values.clear();

            values.put(ContactsContract.CommonDataKinds.Phone.TYPE, aPhone

                    .getType());

            values.put(ContactsContract.CommonDataKinds.Phone.IS_SUPER_PRIMARY,

                    1);

            values.put(ContactsContract.Data.MIMETYPE,

                    ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);

            values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, aPhone

                    .getNumber());

            cr.insert(phoneUri, values);

        }

//添加Email

        for (Email aEmail : contact.getEmail()) {

            emailUri = Uri.withAppendedPath(rawContactUri,

                    ContactsContract.Contacts.Data.CONTENT_DIRECTORY);



            values.clear();

            values.put(ContactsContract.CommonDataKinds.Email.TYPE, aEmail

                    .getType());

            values.put(ContactsContract.Data.MIMETYPE,

                    ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);

            values.put(ContactsContract.CommonDataKinds.Email.DATA, aEmail

                    .getAddress());

            cr.insert(emailUri, values);

        }

        for (String aNote : contact.getNotes()) {

            noteUri = Uri.withAppendedPath(rawContactUri,

                    ContactsContract.Contacts.Data.CONTENT_DIRECTORY);

            values.clear();

            values.put(ContactsContract.Data.MIMETYPE,

                    ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE);

            values.put(ContactsContract.CommonDataKinds.Note.NOTE, aNote);

            cr.insert(noteUri, values);

        }

//添加IM



        for (IM aIM : contact.getImAddresses()) {

            imUri = Uri.withAppendedPath(rawContactUri,

                    ContactsContract.Contacts.Data.CONTENT_DIRECTORY);

            values.clear();

            values.put(ContactsContract.CommonDataKinds.Im.PROTOCOL, aIM

                    .getType());

            values.put(ContactsContract.Data.MIMETYPE,

                    ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE);

            values.put(ContactsContract.CommonDataKinds.Im.DATA, aIM.getName());

            cr.insert(imUri, values);

        }

添加Organization



        for (Organization aORG : contact.getOrganization()) {

            orgUri = Uri.withAppendedPath(rawContactUri,

                    ContactsContract.Contacts.Data.CONTENT_DIRECTORY);

            values.clear();

            values.put(ContactsContract.CommonDataKinds.Organization.TYPE, aORG

                    .getType());

            values.put(ContactsContract.CommonDataKinds.Organization.TITLE,

                    aORG.getTitle());

            values

                    .put(

                            ContactsContract.Data.MIMETYPE,

                            ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE);

            values.put(ContactsContract.CommonDataKinds.Organization.DATA, aORG

                    .getOrganization());

            cr.insert(orgUri, values);

        }

//添加Address,(国家,城市,街道,邮政编码等)

        for (Address aAdd : contact.getAddresses()) {

            addressUri = Uri.withAppendedPath(rawContactUri,

                    ContactsContract.Contacts.Data.CONTENT_DIRECTORY);

            values.clear();

            values

                    .put(

                            ContactsContract.Data.MIMETYPE,

                            ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE);

            if (aAdd.getCity() != null)

                values.put(

                        ContactsContract.CommonDataKinds.StructuredPostal.CITY,

                        aAdd.getCity());

            if (aAdd.getCountry() != null)

                values

                        .put(

                                ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY,

                                aAdd.getCountry());

            if (aAdd.getPoBox() != null)

                values

                        .put(

                                ContactsContract.CommonDataKinds.StructuredPostal.POBOX,

                                aAdd.getPoBox());

            if (aAdd.getPostalCode() != null)

                values

                        .put(

                                ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE,

                                aAdd.getPostalCode());

            if (aAdd.getStreet() != null)

                values

                        .put(

                                ContactsContract.CommonDataKinds.StructuredPostal.STREET,

                                aAdd.getStreet());

            if (aAdd.getState() != null)

                values

                        .put(

                                ContactsContract.CommonDataKinds.StructuredPostal.REGION,

                                aAdd.getState());

            values.put(ContactsContract.CommonDataKinds.StructuredPostal.TYPE,

                    aAdd.getType());

            cr.insert(addressUri, values);

        }



    }



    public boolean WriteContact(ArrayList<Contact> LstContact) {

        try {

            for (Contact contact : LstContact) {

                WriteSingleContact(contact);

            }

            return true;

        } catch (Exception ex) {

            Log.d("ERROR", ex.toString());

            return false;

        }

    }



}  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-22 19:33 , Processed in 0.347200 second(s), 34 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表