Android 调用系统通讯录117

Android 操作系统提供了丰富的 API,允许开发人员与设备上的系统组件进行交互,其中包括通讯录。通过调用系统通讯录 API,开发人员可以访问设备上的联系人信息,并执行各种操作,例如添加、更新和删除联系人。

获取联系人提供程序

要访问系统通讯录,第一步是获取联系人提供程序。联系人提供程序是一个内容提供程序,存储设备上的联系人信息。可以使用以下代码片段获取联系人提供程序:

```javaContentResolver contentResolver = getContentResolver();Uri contactsUri = .CONTENT_URI;```

查询联系人

获取联系人提供程序后,可以使用 query() 方法查询联系人。query() 方法接受一个 Uri、一个投影(要检索的列的数组)、一个选择(要匹配的条件)、一个选择参数数组(选择条件中使用的参数)和一个排序顺序(联系人应如何排序)。

```javaCursor cursor = (contactsUri, projection, selection, selectionArgs, sortOrder);```

解析联系人光标

执行查询后,将返回一个光标,其中包含联系人信息。可以使用以下方法解析光标并检索联系人信息:

```javawhile (()) { String contactId = ((._ID)); String displayName = ((.DISPLAY_NAME)); // ...(获取其他联系人信息)}```

添加联系人

要添加联系人,可以使用 insert() 方法。insert() 方法接受一个 Uri 和一个以键值对形式包含联系人信息的内容值。以下代码片段展示如何添加联系人:

```javaContentValues values = new ContentValues();(.DISPLAY_NAME, "John Doe");(.HAS_PHONE_NUMBER, 1);Uri contactUri = (contactsUri, values);```

更新联系人

要更新联系人,可以使用 update() 方法。update() 方法接受一个 Uri、一个以键值对形式包含联系人更新信息的内容值、一个选择(要匹配的条件)和一个选择参数数组(选择条件中使用的参数)。以下代码片段展示如何更新联系人:

```javaContentValues values = new ContentValues();(.DISPLAY_NAME, "John Smith");int rowCount = (contactUri, values, null, null);```

删除联系人

要删除联系人,可以使用 delete() 方法。delete() 方法接受一个 Uri、一个选择(要匹配的条件)和一个选择参数数组(选择条件中使用的参数)。以下代码片段展示如何删除联系人:

```javaint rowCount = (contactUri, null, null);```

最佳实践

在使用系统通讯录 API 时,请遵循以下最佳实践:

* 使用 ContentResolver 查询和修改联系人,而不是直接访问联系人提供程序。* 使用投影来指定要检索的列,以提高性能。* 使用选择和选择参数数组来筛选联系人,以提高查询效率。* 在对联系人进行更改之前,请先获取 WRITE_CONTACTS 权限。* 使用异步任务在后台处理联系人操作,以避免阻塞主线程。

2024-10-19


上一篇:华为鸿蒙系统内存消耗快的原因及优化方法

下一篇:Android 调用系统通讯录