这个工具类只获取了手机联系人的姓名和电话号码,
1、首先将这个姓名、电话号码封装成domain:
package com.wang.domain; public class ContactInfo { private String name; private String phono; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPhono() { return phono; } public void setPhono(String phono) { this.phono = phono; } }
2、工具类:
package com.wang.engine; import java.util.ArrayList; import java.util.List; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.net.Uri; import com.wang.mobilesafe.domain.ContactInfo; /** * 提供手机联系人信息的类 * * @author HeJW * */ public class ContactInfoProvider { /** * 获取手机系统里面所有联系人信息 * * @return 所有联系人信息的集合 */ public static List<ContactInfo> getContactInfos(Context context) { List<ContactInfo> infos = new ArrayList<ContactInfo>(); ContentResolver resolver = context.getContentResolver(); Uri uri = Uri.parse("content://com.android.contacts/raw_contacts"); Uri dataUri = Uri.parse("content://com.android.contacts/data"); Cursor cursor = resolver.query(uri, new String[] { "contact_id" }, null, null, null); while (cursor.moveToNext()) { String id = cursor.getString(0); if (id != null) { ContactInfo info = new ContactInfo(); Cursor dataCursor = resolver.query(dataUri, new String[] { "mimetype", "data1" }, "raw_contact_id=?", new String[] { id }, null); while (dataCursor.moveToNext()) { String mime = dataCursor.getString(0); String data1 = dataCursor.getString(1); if ( "vnd.android.cursor.item/name".equals(mime) ) { info.setName(data1); } else if ( "vnd.android.cursor.item/phone_v2".equals(mime) ) { info.setPhono(data1); } } infos.add(info); dataCursor.close(); } } cursor.close(); return infos; } }
相关推荐
总之,"android——手机通讯录Demo"项目涵盖了Android开发中的多个关键知识点,包括系统API的使用、UI设计、数据管理以及性能优化,是提升Android开发者技能的绝佳实践。通过这个项目,开发者可以深入理解Android...
在Android平台上,获取手机通讯录是一项常见的功能,无论是开发社交应用、备份工具还是其他与通讯相关的应用程序,都需要访问用户手机的联系人数据。本实战应用将深入探讨如何从设备内部存储以及SIM卡中读取联系人...
这可能涉及到查询ContentResolver,通过ContactsContract.ContentUri获取联系人数据,再将结果转换为可读的字符串格式。 此外,为了实现用户友好的界面,开发者可能会使用Android的Activity和Fragment。Activity是...
这个压缩包文件“安卓Android源码——安卓Android导入导出txt通讯录工具.rar”显然提供了一个实用工具,它能够帮助用户将他们的通讯录数据在Android设备和纯文本(txt)文件之间进行转换。以下是对这一技术实现的...
它是一个ContentProvider的接口,用于获取联系人信息、创建、更新和删除联系人。 3. **ContentResolver和Uri**: 要操作联系人,你需要通过ContentResolver实例来与ContentProvider交互。ContentResolver提供了...
在Android系统中,读取手机联系人是一项常见的功能,它涉及到Android的核心组件——ContentProvider。ContentProvider是Android四大组件之一,用于在不同的应用程序之间共享数据。在这个场景下,我们将主要探讨如何...
6. **联系人API**:Android提供了Contact API供应用访问和操作系统联系人,开发者需要熟悉ContactsContract类和相关常量,以便获取、添加、修改或删除联系人。 7. **UI组件**:应用可能使用ListView或RecyclerView...
4. **权限管理**:访问用户的联系人数据需要获取相应的权限,如在AndroidManifest.xml中声明`<uses-permission>`标签,请求`READ_CONTACTS`和`WRITE_CONTACTS`权限。 5. **适配器(Adapter)**:在显示联系人列表时...
4. 权限管理:在Android中,访问联系人数据需要获取相应的权限。MyContacts展示了如何在Manifest文件中声明权限,以及在运行时请求用户授权。 5. ContentResolver:ContentResolver是与ContentProvider交互的接口,...
Android的联系人应用与Phone模块紧密相关,它们共同维护电话簿数据。Phone模块中的`IInCallService`接口允许在通话过程中访问联系人信息,例如显示来电者的名字。联系人数据存储在SQLite数据库中,可通过...
8. 联系人API:熟悉Android系统的联系人API,学习如何读取、添加、修改和删除联系人。 9. 搜索功能:实现搜索框的即时搜索和联想,提高用户体验。 10. 测试与调试:学习如何编写单元测试,使用Android Studio的调试...
7. **UI响应**:为了确保良好的用户体验,开发者需要优化UI的响应速度,如使用异步加载图片库(如Glide或Picasso)来加载联系人头像,避免阻塞主线程。 8. **适配不同设备**:Android设备有着广泛的屏幕尺寸和...
7. **权限管理**:如果应用需要访问用户隐私数据,如联系人或位置,就需要获取相应的运行时权限。源码中可能包含如何请求和处理权限的示例。 8. **通知与消息推送**:社交应用往往需要实时通知用户新消息或动态。...
RecyclerView用于展示联系人列表,它在内存和性能上比ListView更优;Fragment则用于管理多个视图,使得界面更加灵活;PagerAdapter则用于在ViewPager中实现页面滑动效果,为用户提供平滑的多页面浏览体验。 此外,...
2. **AlphabetIndexer**: 这是Android SDK提供的一种工具类,用于创建一个索引,使用户可以通过点击侧滑的字母栏快速跳转到对应的列表位置。我们需要创建一个AlphabetIndexer对象,并将其与ListView的Adapter关联...
- 解析扫描到的二维码数据,根据数据类型(URL、文本、联系人信息等)执行相应操作。 - 可以弹出对话框让用户确认操作,或者直接跳转到指定页面。 8. **测试与调试**: - 在真机或模拟器上进行充分的测试,确保...
1. **Android SDK**:所有Android应用的基础,它提供了构建、测试和调试Android应用所需的所有工具。开发者需要对Android SDK有深入的理解,包括API级别、构建工具(如Gradle)和模拟器。 2. **布局设计**:项目中...
"简单的SQLite查询"这部分内容会介绍如何创建数据库表,插入、更新和删除数据,以及执行基本的查询操作,如SELECT语句,来获取并显示通讯录中的联系人信息。 在项目的文件列表中,我们看到以下几个关键文件: 1. `...
在Android应用设计中,ListView通常用于显示如联系人列表、新闻摘要或电商应用的商品列表等信息。 首先,我们需要了解ListView的工作原理。ListView通过Adapter与数据源连接,Adapter负责将数据转化为可显示的View...
|--内容提供者之联系人读写与批量操作 |--内容提供者之获取通话记录 |--内容提供者的定义 |--写入联系人信息 |--利用FinalHttp实现多线程断点续传 |--加密之MD5 |--动画Animation详解 |--动画之view左右抖动 |--动画...