Pro Android学习笔记(一六六):联系人API(9):Personal Profile

文章转载只能用于非商业性质,且不能带有虚拟货币、积分、注册等附加条件。转载须注明出处http://blog.csdn.net/flowingflying/以及作者@恺风Wei

profile的数据库

Personal Profile contact和其他的contact一样,但只有为一个,由单独的数据块profile.db进行存放,这个数据库和contact2.db的结构是一样的。由于只有一个整合联系人,所以在整合方面的处理更为简单,所有的raw contacts都会整合到这唯一的联系人(me)中。

相关的URI和普通联系人相似,用Profile替代Contact。例如ContactsContract.Profile.CONTENT_URIContactsContract.Profile.CONTENT_RAW_CONTACTS_URIContactsContract.RawContactsEntity.PROFILE_CONTENT_URI。但是Data表,和contact数据使用同一个URI,即Data.CONTENT_URI。Content Provider同时支持对profile和contact。

对于对personal profile数据的读写,需要获得相应的权限。

<uses-permission android:name="android.permission.READ_PROFILE"/>
<uses-permission android:name="android.permission.WRITE_PROFILE"/>

读profile的raw contact

读取profile的raw contacts和读取contact中的raw contacts没有区别,相关代码片段如下,更多的代码可参见Pro Android学习笔记(一六二):联系人API(5):读Raw Contacts

private void showAllRawContactsInPersonalProfile(){ 
    Cursor c = null;
    try{
        c = getACurosor(ContactsContract.Profile.CONTENT_RAW_CONTACTS_URI.toString(), null);
        showEntries(c);
    }finally{
        if(c != null)
            c.close();
    }
}

private void showEntries(Cursor c ){
    int num = 0; 
    for(c.moveToFirst(); !c.isAfterLast() ; num ++,c.moveToNext()){
        RawContactInfo rawOne = new RawContactInfo();
        rawOne.fillinFrom(c);
        showInfo("【" + num + "】" + rawOne.toString());
    }
}

读profile中raw contact的具体信息

和contact一样,RawContactEntity是结合raw contact和data提供的view,读取方式也一样,下面是代码片段,更多的代码可参见Pro Android学习笔记(一六三):联系人API(6):联系人详细信息

private void showRawContactsInPersonalProfileData(){ 
    Cursor c = null;
    try{
        c = getACurosor(ContactsContract.RawContactsEntity.PROFILE_CONTENT_URI.toString(), null);
        showEntitiesData(c);
    }finally{
        if(c != null)
            c.close();
    }
}

private void showEntitiesData(Cursor c){
    int num = 0; 
    for(c.moveToFirst(); !c.isAfterLast() ; num ++,c.moveToNext()){
        ContactInfo one = new ContactInfo();
        one.fillinFrom(c);
        showInfo("【" + num + "】" + one.toString());
    }       
}

下面是小例子的截屏

小例子下载

相关链接: 我的Android开发相关文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值