Android 调用系统通讯录119
Android 操作系统提供了丰富的 API,允许开发人员与设备上的系统组件进行交互,其中包括通讯录。通过调用系统通讯录 API,开发人员可以访问设备上的联系人信息,并执行各种操作,例如添加、更新和删除联系人。
获取联系人提供程序
要访问系统通讯录,第一步是获取联系人提供程序。联系人提供程序是一个内容提供程序,存储设备上的联系人信息。可以使用以下代码片段获取联系人提供程序:```java
ContentResolver contentResolver = getContentResolver();
Uri contactsUri = .CONTENT_URI;
```
查询联系人
获取联系人提供程序后,可以使用 query() 方法查询联系人。query() 方法接受一个 Uri、一个投影(要检索的列的数组)、一个选择(要匹配的条件)、一个选择参数数组(选择条件中使用的参数)和一个排序顺序(联系人应如何排序)。```java
Cursor cursor = (contactsUri, projection, selection, selectionArgs, sortOrder);
```
解析联系人光标
执行查询后,将返回一个光标,其中包含联系人信息。可以使用以下方法解析光标并检索联系人信息:```java
while (()) {
String contactId = ((._ID));
String displayName = ((.DISPLAY_NAME));
// ...(获取其他联系人信息)
}
```
添加联系人
要添加联系人,可以使用 insert() 方法。insert() 方法接受一个 Uri 和一个以键值对形式包含联系人信息的内容值。以下代码片段展示如何添加联系人:```java
ContentValues values = new ContentValues();
(.DISPLAY_NAME, "John Doe");
(.HAS_PHONE_NUMBER, 1);
Uri contactUri = (contactsUri, values);
```
更新联系人
要更新联系人,可以使用 update() 方法。update() 方法接受一个 Uri、一个以键值对形式包含联系人更新信息的内容值、一个选择(要匹配的条件)和一个选择参数数组(选择条件中使用的参数)。以下代码片段展示如何更新联系人:```java
ContentValues values = new ContentValues();
(.DISPLAY_NAME, "John Smith");
int rowCount = (contactUri, values, null, null);
```
删除联系人
要删除联系人,可以使用 delete() 方法。delete() 方法接受一个 Uri、一个选择(要匹配的条件)和一个选择参数数组(选择条件中使用的参数)。以下代码片段展示如何删除联系人:```java
int rowCount = (contactUri, null, null);
```
最佳实践
在使用系统通讯录 API 时,请遵循以下最佳实践:* 使用 ContentResolver 查询和修改联系人,而不是直接访问联系人提供程序。
* 使用投影来指定要检索的列,以提高性能。
* 使用选择和选择参数数组来筛选联系人,以提高查询效率。
* 在对联系人进行更改之前,请先获取 WRITE_CONTACTS 权限。
* 使用异步任务在后台处理联系人操作,以避免阻塞主线程。
2024-10-19
下一篇:Android 调用系统通讯录
新文章

华为鸿蒙OS深度解析:技术架构、创新点及未来展望

华为MatePad鸿蒙系统更新详解:内核、驱动与OTA机制

Linux 3.2内核详解:架构、特性与核心改进

华为VR Glass操作系统深度解析:鸿蒙OS的适配与挑战

华为鸿蒙OS与东方通中间件的深度融合:技术架构与应用前景

iOS图片处理及系统底层机制

联想电脑Windows系统安装详解:BIOS设置、分区、驱动及疑难解答

麒麟系统下安装Windows:双系统配置详解及技术要点

鸿蒙操作系统学习资源及开发者报名途径详解

华为鸿蒙HarmonyOS补丁包:深入解读其机制与安全策略
热门文章

iOS 系统的局限性

Linux USB 设备文件系统

Mac OS 9:革命性操作系统的深度剖析

华为鸿蒙操作系统:业界领先的分布式操作系统

**三星 One UI 与华为 HarmonyOS 操作系统:详尽对比**

macOS 直接安装新系统,保留原有数据

Windows系统精简指南:优化性能和提高效率
![macOS 系统语言更改指南 [专家详解]](https://cdn.shapao.cn/1/1/f6cabc75abf1ff05.png)
macOS 系统语言更改指南 [专家详解]

iOS 操作系统:移动领域的先驱
