51自学网 - 轻松自学从此开始!

51自学网

当前位置: 首页 > 自学教程 > 教程天下 >

Android利用Intent读取和更新通讯录

时间:2017-01-11 07:05来源:网络整理 作者:51自学网
一、简介 本节演示如何在安卓系统中通过用户配置文件(user profile)读取和更新该手机的所有联系人信息,以及如何导航到用户配置文件中的这些联系人。 二、基本概念 1、什么是 User Profile 用户配置文件(user profile)保存的是机主信息以及该手机中所

一、简介
本节演示如何在安卓系统中通过用户配置文件(user profile)读取和更新该手机的所有联系人信息,以及如何导航到用户配置文件中的这些联系人。

二、基本概念
 1、什么是 User Profile

用户配置文件(user profile)保存的是机主信息以及该手机中所有联系人的信息。

假定手机所有者的名字为“Mao mao yu”,那么,user profile保存的就是“Mao mao yu”的通讯录(即机主所有联系人的姓名、电话、邮箱、……等信息)。在Android 4中,这个保存联系人信息的应用程序称为“People app”,而在Android 5.0及更高版本中,这个应用程序又改称为“Contacts app” 。

Android 6.0(API 23)模拟器已经包含了【通讯录】功能,利用它可直接手工添加手机所有者姓名及其联系人,如下图所示:

Android利用Intent读取和更新通讯录

单击【通讯录】中的某个联系人,例如单击机主的名字(或者其他联系人的名字),就可以在显示的界面中修改这个人的姓名、电话、邮箱、住址等信息,或者添加新联系人,这个功能大家在手机上用的太熟了,这里就不多说了。

我们这一节的目标就是学习如何在自己的应用程序中通过代码去添加或修改这个用户配置文件(user profile)中的信息,而不是用它自身提供的功能去编辑。

2、权限要求

要在你的程序中读和写手机所有联系人的数据,你的应用程序必须具有Read_Contacts和Write_Contacts权限。另外,要读取和编辑用户配置文件(user profile),你的应用程序必须具有Read_Profile和Write_Profile权限。

或者说,必须具有下面的权限才能读写通讯录和机主的用户配置文件:

READ_CONTACTS

READ_PROFILE

WRITE_CONTACTS

WRITE_PROFILE

实际上,你手机上下载的各类应用程序,只要有对应的权限,都可以获取和修改你的通讯录(一般手机用户都不是搞计算机的,因此也不太关心什么权限不权限,直接按下一步点下去,结果是默认都给这些程序赋予了完全的读写权限)。或者说,只要你给这些应用程序赋予了对应的读写权限,那么你的通讯录实际上就没有一点安全可言了,这些程序想什么时候获取就可以什么时候获取(泄露出去真是太简单了),这也是为什么有那么多免费的手机应用拼命让你去下载和使用的原因。

下图是在VS2015中设置Read_Contacts和Read_Profile的办法(通过单击主菜单【项目】下的【属性】弹出此界面):

Android利用Intent读取和更新通讯录

按照同样的办法,可继续设置WRITE_CONTACTS和WRITE_PROFILE权限。

3、获取通讯录信息(Reading Profile Data)

安卓早期的版本是通过ContactContracts.Contacts类来获取手机上所有联系人的列表信息的。从Android 4开始又提供了一个新的ContactsContact.Profile类,该类提供了对设备所有者用户配置文件(user profile)的访问,利用它即可获取和修改所有联系人的名称、电话号码等数据。

向 ContactsContact.Profile.ContentUri 发出查询即可读取配置文件的数据。例如,下面的代码读取该用户配置文件的显示名称:

var uri = ContactsContract.Contacts.ContentUri; string[] projection = { ContactsContract.Contacts.InterfaceConsts.DisplayName }; var cursor = ContentResolver.Query(uri, projection, null, null, null); if (cursor.MoveToFirst ()) { Console.WriteLine(cursor.GetString (cursor.GetColumnIndex (projection [0]))); }

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容