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
    评论
非常好的问题!让我来回答你的问题。 首先,关于VBA学习笔记(一):自动添加代码,你可以使用VBA的宏来自动添加代码。具体步骤如下: 1. 打开你要添加代码的Excel文件,并按下Alt + F11进入VBA编辑器界面。 2. 在左侧的“项目资源管理器”窗格中,展开你的Workbook,并双击“这台电脑”(或“Microsoft Excel 对象”),打开相应的代码窗口。 3. 在代码窗口的顶部,选择“工具” > “宏” > “录制新宏”。 4. 在弹出的“新建宏”对话框中,为新宏命名,并选择一个快捷键,以便日后调用。 5. 点击“确定”后,VBA会自动开始录制你的操作。 6. 在代码窗口中,添加你需要自动执行的代码。 7. 完成代码添加后,点击“停止录制”按钮,保存你的新宏。 接下来,关于VBA修改注册表,你可以使用VBA的“WshShell”对象来实现。具体步骤如下: 1. 在VBA编辑器中,打开你要修改注册表的代码窗口。 2. 在代码窗口的顶部,添加以下代码: ``` Dim WshShell As Object Set WshShell = CreateObject("WScript.Shell") ``` 这将创建一个名为“WshShell”的对象,用于执行后续的注册表修改操作。 3. 接下来,你可以使用该对象的“RegWrite”方法来修改注册表。例如,以下代码将修改Windows启动时自动运行的程序列表: ``` WshShell.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\MyApp", "C:\MyApp.exe", "REG_SZ" ``` 该代码将在“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”键下添加一个名为“MyApp”的值,其值为“C:\MyApp.exe”,类型为“REG_SZ”。 4. 完成代码添加后,保存并执行你的代码。 希望这些步骤对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值