Android应用实战:内容提供者读取与显示联系人
151 浏览量
更新于2024-08-28
1
收藏 125KB PDF 举报
在Android开发中,了解如何查看和读取手机联系人是十分重要的,因为许多应用程序可能需要访问用户的联系人数据。本篇文章将详细介绍两种方法来实现这一功能:一是通过系统内置的Contacts应用,二是直接通过ContentProvider访问联系人数据库。
首先,确保在`AndroidManifest.xml`文件中添加必要的权限,因为读取联系人涉及到隐私数据,所以必须请求用户的许可。具体来说,你需要在`<manifest>`标签内加入以下两行:
```xml
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
```
这些权限分别允许应用读取(READ_CONTACTS)和写入(WRITE_CONTACTS)联系人数据。
接下来,我们看两种不同的实现方式:
1. 系统自带的联系人界面:
这种方法通常用于简单地展示联系人列表,而不是修改它们。可以通过以下步骤实现:
- 创建一个`Activity`,并重写相应的方法,如`onCreate()`,在这个方法中启动系统联系人选择器。
- 使用`Intent`打开`ACTION_PICK`动作,指定`ContactsContract.CommonDataKinds.Phone.CONTENT_URI`,这是联系人电话号码的数据URI:
```java
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(intent, REQUEST_CODE_PICK_CONTACT);
```
- 当用户选择联系人后,处理`onActivityResult()`回调,解析返回的数据。
2. 直接通过ContentProvider读取并显示:
这个方法更深入地利用了ContentProvider,可以直接操作联系人数据库。首先,创建一个`BaseAdapter`来显示联系人数据:
```java
private class ContactAdapter extends BaseAdapter {
// ... 实现构造函数、获取联系人数据、getView()方法等
}
```
- 在`getView()`方法中,使用`Cursor`遍历联系人数据,展示联系人的姓名、电话号码等信息。
- 如果需要,还可以提供筛选或搜索功能,使用`Uri`构建查询条件。
为了在主页面上显示这些联系人,可以使用一个`ListView`,并将`ContactAdapter`设置为它的适配器。当用户点击列表项时,可以弹出对话框显示联系人详情或者执行其他操作。
最后,别忘了处理`PhoneStateListener`和`TelephonyManager`,以确保在应用有权限的情况下访问联系人数据。这通常是当应用需要获取设备状态或者用户授权时进行的。
了解并掌握如何在Android应用中使用ContentProvider查看和读取联系人,对于开发者来说是一项实用的技能,它可以帮助你在构建需要与用户联系信息交互的应用时更加得心应手。通过这个实例,你可以了解到权限管理、数据访问和界面展示的各个环节,对你的项目开发大有裨益。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-08-31 上传
2021-01-20 上传
2011-12-01 上传
2016-07-18 上传
2015-02-03 上传
2015-08-19 上传
weixin_38691970
- 粉丝: 6
- 资源: 959
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器