Android开发入门之访问通讯录中的联系人和添加联系人

本文介绍了Android开发中如何访问和添加联系人,包括解析contacts2.db中的核心表,如raw_contacts、data和mimetypes。通过创建测试项目和测试类,详细讲解了ContentProvider的使用,并给出了源码示例链接。文章最后讨论了插入联系人数据时的事务处理问题,提出了另一种插入方法。
摘要由CSDN通过智能技术生成

首先在向Android联系人中添加数据


联系人的数据放在


将contacts2.db导出到桌面上,打开

contact2.db有很多表,最重要的有3张表raw_contacts(存放联系人ID)、data、mimetypes


raw_contacts:


data:


mimetypes:




新建一个名为contacts 的项目,添加测试环境,新建一个测试类ContactsTest,放在cn.leigo.test包下。


现在我们看看源码是如何定义联系人的ContentProvider的,https://android.googlesource.com/platform/packages/providers/ContactsProvider.git/+/android-2.3.3_r1/AndroidManifest.xml

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
            package="com.android.providers.contacts"
            android:sharedUserId="android.uid.shared">

        <uses-permission android:name="android.permission.READ_CONTACTS" />
        <uses-permission android:name="android.permission.WRITE_CONTACTS" />
        <uses-permission android:name="android.permission.GET_ACCOUNTS" />
        <uses-permission android:name="android.permission.READ_SYNC_STATS" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.USE_CREDENTIALS" />
        <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH" />
        <uses-permission android:name="com.google.android.googleapps.permission.GOOGLE_AUTH.cp" />
        <uses-permission android:name="android.permission.SUBSCRIBED_FEEDS_READ" />
        <uses-permission android:name="android.permission.SUBSCRIBED_FEEDS_WRITE" />

        <application android:process="android.process.acore"
            android:label="@string/app_label"
            android:icon="@drawable/app_icon">

            <provider android:name="ContactsProvider2"
                android:authorities="contacts;com.android.contacts"
                android:label="@string/provider_label"
                android:multiprocess="false"
                android:readPermission="android.permission.READ_CONTACTS"
                android:writePermission="android.permission.WRITE_CO
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值