惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
雷峰网
雷峰网
Last Week in AI
Last Week in AI
T
Tailwind CSS Blog
V
Visual Studio Blog
Jina AI
Jina AI
博客园 - 司徒正美
The Cloudflare Blog
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
S
SegmentFault 最新的问题
博客园 - 三生石上(FineUI控件)
有赞技术团队
有赞技术团队
小众软件
小众软件
V
V2EX
Apple Machine Learning Research
Apple Machine Learning Research
美团技术团队
博客园 - 【当耐特】
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
IT之家
IT之家
WordPress大学
WordPress大学
爱范儿
爱范儿
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏

博客园 - Liren

查找目录中同名的文件或者文件夹 获取设置一个字节某一个位的数值 基于JMS的数据交换既数据互操作平台的解决方案 Spring MVC基于注解的Junit测试 Spring MVC 3中关于url-pattern设成"/"后,资源访问问题 博文阅读密码验证 - 博客园 NotificationManager - Liren - 博客园 发送短信 MorseCodeConverter 自用留存 - Liren - 博客园 Android 给自己的类加个事件 用代码旋转屏幕 - Liren - 博客园 Android SQLiteHelper Cassandra API60 Java 代码示例 Cassandra Java 使用TimeUUIDType 转:在 CLI 中練習 Data Model asp.net 实现一个简单CAS Server - Liren Ajax跨域访问代理类,支持GET和POST方法 Python 学习笔记:需要仔细阅读一个函数 Python 学习笔记: 备份工具
调用系统联系人列表
Liren · 2011-01-25 · via 博客园 - Liren

调用系统联系人列表

Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
startActivityForResult(intent, ACTION_PICK);

获取返回

代码

 1 @Override
 2     protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
 3         if (ACTION_PICK == requestCode) {
 4             if (resultCode == Activity.RESULT_OK) {
 5                 Uri contactData = intent.getData();
 6                 Cursor c = managedQuery(contactData, nullnullnullnull);
 7                 if (c.moveToFirst()) {
 8                     getContactInfo(intent);
 9                 }
10             }
11         }
12         super.onActivityResult(requestCode, resultCode, intent);
13     }

解析联系人信息 

 代码

 1 private void getContactInfo(Intent intent) {
 2         Cursor cursor = managedQuery(intent.getData(), nullnullnullnull);
 3         while (cursor.moveToNext()) {
 4             String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
 5             String name = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
 6             String phoneNumber = null, emailAddress=null;
 7             String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
 8 
 9             if (hasPhone.equalsIgnoreCase("1"))
10                 hasPhone = "true";
11             else
12                 hasPhone = "false";
13 
14             if (Boolean.parseBoolean(hasPhone)) {
15                 Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
16                         ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, nullnull);
17                 while (phones.moveToNext()) {                    
18                     phoneNumber += phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)) +";";
19                 }
20                 phones.close();
21             }
22 
23             txtContact.setText(name);
24             txtMessage.setText(phoneNumber);
25 
26             Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,
27                     ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId, nullnull);
28             while (emails.moveToNext()) {
29                 emailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
30             }
31             emails.close();
32 
33             Cursor address = getContentResolver().query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI, null,
34                     ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID + " = " + contactId, nullnull);
35             while (address.moveToNext()) {
36                 String poBox = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX));
37                 String street = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
38                 String city = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
39                 String state = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
40                 String postalCode = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
41                 String country = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY));
42                 String type = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE));
43             }
44             address.close();
45         }
46         cursor.close();
47     }