`

Android入门:增删改查通讯录

 
阅读更多


一、通讯录应用介绍


通讯录应用是Android自带的应用程序,我们看到此应用的时候,可能只认为这是一个应用,用数据库存储数据,但是实际上不是这样的。

通讯录是ContentProvider的应用,通讯录由两部分组成:

(1)com.android.providers.contacts的ContentProvider:真正存储数据的ContentProvider

(2)com.android.contacts:运用ContentResolver获取数据的图形用户界面;


二、获取ContactProvider的源代码


Android源代码: http://my.oschina.net/zhanglubing/blog/40623用git获取;

如果要获取ContactProvider,则安装git,并打开git bash,输入

git clone https://android.googlesource.com/platform/packages/providers/ContactsProvider.git即可;

目录结构如下:


为何要获取ContactProvider的源代码呢?

因为如果要访问ContentProvider,必须要了解URI的设置(authority,path等);只有查看源代码才能够知道;

AndroidManifest.xml为清单文件,列出了ContactProvider的authorities,以及要访问通讯录需要的权限;


主要的通讯录程序为ContactsProvider2.java,authorities为:contacts或com.android.contacts;


三、通讯录数据库结构介绍


表结构如下:





通讯录是存放在/data/data/com.android.providers.contacts/databases/contacts2.db,里面主要的表有:

(1)raw_contacts:存放联系人的ID,

_id属性为主键,声明为autoincrement,即不需要手动设置,其他属性也不需要手动设置就有默认值;

display_name属性为姓名;

(2)mimetypes:存放数据的类型,比如"vnd.android.cursor.item/name"表示“姓名”类型的数据,"vnd.android.cursor.item/phone_v2"表示“电话”类型的数据;

(3)data:存放具体的数据;

raw_contact_id属性用来连接raw_contacts表,每条记录表示一个具体数据;我们主要的数据(email、phone等)都存放在data表;

data1属性存放总数据;

data2属性:

-如果此记录存放姓名,则data2存放名;

-如果此记录存放电话,则data2存放类型,比如手机、家电;

-如果此记录存放组织,则data2存放类型,比如公司、其他;

-如果此记录存放地址,则data2存放类型,比如住宅,单位等;


四、对通信录做增删改查


简单的说:对通讯录操作就是对一个普通的ContentProvider操作;


1.Query


(1)根据电话号码查询姓名


(2)查询所有的联系人





2.Insert

(1)一步一步添加数据





(2)批量添加数据

核心代码:
(1)ContentProviderOperation operation = ContentProviderOperation.newInsert(uri).withValue("key","value").build();
(2)resolver.applyBatch("authorities",operations);//批量提交



3.Delete


核心思想:
(1)先在raw_contacts表根据姓名查出id;
(2)在data表中只要raw_contact_id匹配的都删除;



4.Update


核心思想:

(1)不需要更新raw_contacts,只需要更新data表;

(2)uri=content://com.android.contacts/data 表示对data表进行操作;








分享到:
评论

相关推荐

    android手机通讯录的增删改查

    对安卓手机通讯录中的联系人进行增、删、改、查等操作,本资源只有一个java工具类,不是完整的项目,支持根据手机号查询联系人对应的RawContactId.

    基于安卓开发和设计的一款APP,实现手机通讯录的功能,实现通讯录头像图片的上传与显示,增删改查通讯录人员功能

    基于安卓开发和设计的一款APP,实现手机通讯录的功能,实现通讯录头像图片的上传与显示,增删改查通讯录人员功能基于安卓开发和设计的一款APP,实现手机通讯录的功能,实现通讯录头像图片的上传与显示,增删改查...

    python实现数据库增删改查,通讯录 学号管理等

    python实现数据库增删改查,通讯录。学号管理等python实现数据库增删改查,通讯录。学号管理等python实现数据库增删改查,通讯录。学号管理等python实现数据库增删改查,通讯录。学号管理等python实现数据库增删改查...

    安卓电话簿课程设计(实现对联系人的增删改查).zip

    这个"安卓电话簿课程设计(实现对联系人的增删改查)"项目旨在帮助开发者理解如何利用Android SDK来实现这样的功能。下面我们将深入探讨这个项目所涉及的主要知识点。 首先,我们关注的是AndroidManifest.xml文件,它...

    简单通讯录程序,可增删改查

    利用python,写的一个简单的通讯录程序,可以进行增删改查。

    JSP增删改查 -简易通讯录

    **JSP增删改查 - 简易通讯录** 在Web开发中,JSP(JavaServer Pages)是一种用于创建动态网页的技术。本项目“JSP增删改查 -简易通讯录”旨在实现一个基本的在线通讯录系统,让用户能够进行联系人的添加、删除、...

    通讯录增删改查demo

    个人总结的通讯录操作的增删改查,里面包含两种progressdialog的用法,使用原生的和自定义的。没有具体的update方法,看完后我想你们自己应该可以写出来updata方法了,界面呢不是太好看,勿喷啊!删除和查询我添加了...

    Android通讯录的增删改查

    1:Android运用SQL数据库对数据经行简单的增删改查,并把最终结果显示在对应的区域! 2:四个功能条例清晰,方法陈列工整,让看起来更加易懂! 3:压缩包解压后直接打开AndroidStudio软件导入即可运行,100%包运行!...

    【Android】Sqlite数据库增删改查(修改版)

    在这个“【Android】Sqlite数据库增删改查(修改版)”项目中,我们将探讨如何在Android应用中使用SQLite进行基本的数据操作:增加、删除、修改和查询。 首先,我们要了解SQLite在Android中的集成。每个Android应用...

    java 简单QQ通讯录具有增删改查功能

    3. **增删改查(CRUD)操作**: CRUD是数据库操作的基本概念,也适用于这个通讯录系统。"增"是指添加新的联系人到列表;"删"是删除特定的联系人;"改"是更新联系人的信息;"查"是查询和显示通讯录中的联系人。这些...

    android 手机通讯录 增删改查,直接拨号,发信息

    我们需要创建一个SQLite数据库,定义对应的表结构,并编写SQL语句来执行增删改查操作。 2. **内容提供者(Content Provider)**:为了与其他应用共享数据,Android引入了内容提供者机制。我们需要创建一个自定义的...

    Android案例:通讯录。利用SQLite+ListView,实现通讯录增删查改

    在这个案例中,我们将深入探讨如何实现通讯录的增删查改功能。 首先,我们需要创建一个SQLite数据库。SQLite是Android系统内置的关系型数据库,它轻量级且易于操作。要创建一个通讯录数据库,我们需要定义一个`...

    C++通讯录管理系统(对文件进行增删改查).pdf

    C++通讯录管理系统(对文件进行增删改查).pdf

    greendao 实现增删改查功能

    本篇将深入讲解如何利用 greendao 实现增删改查(CRUD:Create, Read, Update, Delete)功能,并基于 `Android Studio` 开发环境进行实践。 1. **安装与配置 greendao** 首先,我们需要在 `build.gradle` 文件中...

    Kotlin实现简单的学生信息管理系统,SQLite数据库,增删改查

    根据Android数据存储的内容,综合应用SharedPreferences和SQLite数据库实现一个用户信息管理系统,强化对SharedPreferences的理解的使用,熟练掌握SQLite的操作。 要求: 1. 巩固Android应用开发工具(Eclipse或者...

    android 增删改查

    在Android开发中,"增删改查"(CRUD,Create, Read, Update, Delete)是数据操作的基础,无论是在数据库、文件系统还是网络请求中都广泛应用。以下是对这个主题的详细阐述: **创建(Create)** 在Android中,创建...

    简单的Android电话号码增删改查

    在Android平台上,开发一个简单的电话号码管理应用是一个基础但实用的练习。这个应用的核心功能包括添加、删除、修改和查询电话号码,对于初学者来说,是理解Android开发基础的一个好项目。下面我们将深入探讨这些...

    Servlet(增删改查)模拟网络通讯录

    在这个"Servlet(增删改查)模拟网络通讯录"项目中,我们将探讨如何利用Servlet实现一个基本的网络通讯录应用,涵盖用户对联系人的增加、删除、修改和查询操作。 首先,我们需要了解Servlet的生命周期,它包括加载、...

    无废话Android 系列教程34 [使用系统api实现SQLite增删改查&&测试]

    本教程将深入探讨如何使用系统API实现SQLite数据库的增删改查操作,并进行相关的测试。以下是对这个主题的详细讲解: 一、SQLite数据库基础 SQLite是Android系统内置的SQL数据库引擎,无需单独安装。开发者可以创建...

    jsp.rar_JSP 通讯录_java 通讯录_jsp 增删改查_jsp 增删改查_jsp增删改查

    在本例中,"jsp.rar" 包含的是一个基于JSP的通讯录系统,实现了基本的数据操作功能,如**增删改查**。 **通讯录** 应用程序通常用于存储个人或组织的联系人信息,包括姓名、电话号码、电子邮件地址等。在这个Java...

Global site tag (gtag.js) - Google Analytics