- 浏览: 263592 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
成大大的:
Android自动化测试从入门到精通网盘地址:https:// ...
Android自动化测试手段之Monkey -
opadnjmdl:
Android自动化测试从入门到精通链接:http://pan ...
Android自动化测试手段之Monkey -
yezhiyouling:
为什么转换的视频不完整呢??一个3分钟的视频只能转换1分钟都不 ...
java调用视频转换工具ffmpeg -
fanfq:
Jocson 写道http://javapapers.com/ ...
Android Server Push - GCM -
fanfq:
zzudhj 写道是啊 !这里得到的b1是null.不知道为何 ...
android屏幕截图
import android.app.Activity; import android.database.Cursor; import android.os.Bundle; import android.provider.ContactsContract; import android.provider.ContactsContract.Data; import android.provider.ContactsContract.CommonDataKinds.Im; import android.provider.ContactsContract.CommonDataKinds.Nickname; import android.provider.ContactsContract.CommonDataKinds.Note; import android.provider.ContactsContract.CommonDataKinds.Organization; import android.util.Log; public class ContactActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 获得所有的联系人 Cursor cur = getContentResolver().query( ContactsContract.Contacts.CONTENT_URI, null, null, null, ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"); // 循环遍历 if (cur.moveToFirst()) { int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID); int displayNameColumn = cur .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); do { // 获得联系人的ID号 String contactId = cur.getString(idColumn); // 获得联系人姓名 String disPlayName = cur.getString(displayNameColumn); // 查看该联系人有多少个电话号码。如果没有这返回值为0 int phoneCount = cur .getInt(cur .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); Log.i("username", disPlayName); if (phoneCount > 0) { // 获得联系人的电话号码 Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); if (phones.moveToFirst()) { do { // 遍历所有的电话号码 String phoneNumber = phones .getString(phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); String phoneType = phones .getString(phones .getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)); Log.i("phoneNumber", phoneNumber); Log.i("phoneType", phoneType); } while (phones.moveToNext()); } } // 获取该联系人邮箱 Cursor emails = getContentResolver().query( ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); if (emails.moveToFirst()) { do { // 遍历所有的电话号码 String emailType = emails .getString(emails .getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE)); String emailValue = emails .getString(emails .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); Log.i("emailType", emailType); Log.i("emailValue", emailValue); } while (emails.moveToNext()); } // 获取该联系人IM Cursor IMs = getContentResolver().query( Data.CONTENT_URI, new String[] { Data._ID, Im.PROTOCOL, Im.DATA }, Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='" + Im.CONTENT_ITEM_TYPE + "'", new String[] { contactId }, null); if (IMs.moveToFirst()) { do { String protocol = IMs.getString(IMs .getColumnIndex(Im.PROTOCOL)); String date = IMs .getString(IMs.getColumnIndex(Im.DATA)); Log.i("protocol", protocol); Log.i("date", date); } while (IMs.moveToNext()); } // 获取该联系人地址 Cursor address = getContentResolver() .query( ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); if (address.moveToFirst()) { do { // 遍历所有的地址 String street = address .getString(address .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET)); String city = address .getString(address .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY)); String region = address .getString(address .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION)); String postCode = address .getString(address .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE)); String formatAddress = address .getString(address .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS)); Log.i("street", street); Log.i("city", city); Log.i("region", region); Log.i("postCode", postCode); Log.i("formatAddress", formatAddress); } while (address.moveToNext()); } // 获取该联系人组织 Cursor organizations = getContentResolver().query( Data.CONTENT_URI, new String[] { Data._ID, Organization.COMPANY, Organization.TITLE }, Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='" + Organization.CONTENT_ITEM_TYPE + "'", new String[] { contactId }, null); if (organizations.moveToFirst()) { do { String company = organizations.getString(organizations .getColumnIndex(Organization.COMPANY)); String title = organizations.getString(organizations .getColumnIndex(Organization.TITLE)); Log.i("company", company); Log.i("title", title); } while (organizations.moveToNext()); } // 获取备注信息 Cursor notes = getContentResolver().query( Data.CONTENT_URI, new String[] { Data._ID, Note.NOTE }, Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='" + Note.CONTENT_ITEM_TYPE + "'", new String[] { contactId }, null); if (notes.moveToFirst()) { do { String noteinfo = notes.getString(notes .getColumnIndex(Note.NOTE)); Log.i("noteinfo", noteinfo); } while (notes.moveToNext()); } // 获取nickname信息 Cursor nicknames = getContentResolver().query( Data.CONTENT_URI, new String[] { Data._ID, Nickname.NAME }, Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='" + Nickname.CONTENT_ITEM_TYPE + "'", new String[] { contactId }, null); if (nicknames.moveToFirst()) { do { String nickname_ = nicknames.getString(nicknames .getColumnIndex(Nickname.NAME)); Log.i("nickname_", nickname_); } while (nicknames.moveToNext()); } } while (cur.moveToNext()); } } }
评论
6 楼
lvjin948
2013-01-06
非常高效地读手机联系人列表和分组 .
http://blog.csdn.net/lvjin110/article/details/8475080
http://blog.csdn.net/lvjin110/article/details/8475080
5 楼
jianghao3616
2012-07-09
写的很详细,不过细节上还有一些问题,比如效率问题,Cursor没有判空和close操作
4 楼
跃六感
2011-11-27
写的非常不错
3 楼
yanyi609
2011-03-14
顶,楼主写的很详细,所有的都有
2 楼
zhaopian16
2010-12-14
zhaopian16 写道
找了好多,只有楼主的这代码看样子真的调试过!赞起
希望看客们能多向楼主学习下,没有调试过的代码不要乱贴!害人A………………
1 楼
zhaopian16
2010-12-14
找了好多,只有楼主的这代码看样子真的调试过!赞起
发表评论
-
获取手机短信
2016-12-15 14:22 693import android.content.pm.P ... -
使用aapt工具获取android package信息
2016-11-02 15:30 775aapt 位于 android sdk下的build-tool ... -
编译shadowsocks-android工程
2016-10-31 13:51 3960之前是买的ss的账号,每年的费用差不多300块RMB,服务也比 ... -
ubuntu sbt 安装
2016-10-31 13:41 827真的还是第一次听说过sbt,没想到如此之牛逼。不是编译程序用到 ... -
git ss代理配置
2016-10-31 12:57 1982#http、https代理的配置与取消 git config ... -
Android - Device Administration
2014-07-09 14:08 1208课程内容 定义和声明您的策略 创建 Dev ... -
android屏幕解锁
2012-09-24 16:23 1467KeyguardManager km = (KeyguardM ... -
Android Server Push - Urban Airship
2012-09-08 01:25 3610Android Server Push Solutions A ... -
Android Server Push - GCM
2012-08-14 22:11 2216http://developer.android.com/gu ... -
偷数据
2012-08-13 22:20 4一个朋友最近谈了女朋友,他告诉我他想开发一款公交车查询的app ... -
小米手机离一坨屎的距离
2012-04-25 10:56 2104前言 媳妇想换部手机, ... -
Funambol 编译
2012-03-08 23:18 3063前面介绍过有关服务器推送,最终选择Androidpn应用于我们 ... -
Android Server Push - C2DM
2012-02-14 11:38 1493C2DM 敬请期待 -
Android Server Push - Androidpn
2012-02-14 11:36 3833Server androidpn-server-0.5.0-b ... -
Android Server Push - MQTT
2012-02-14 11:31 14166最近花了较长的时间重点研究有关服务器推送的技术,在下面的几篇文 ... -
Failure [INSTALL_FAILED_OLDER_SDK]
2011-07-26 13:41 2015/build/core/version_defaults.mk ... -
android模块编译,mm,mmm 模块编译 .
2011-07-26 11:00 3623from http://jinguo.javaeye.co ... -
通过wifi连接设备
2011-05-17 11:35 2067set ADB_HOST=192.168.1.1 ... -
Android核心分析
2011-02-25 16:08 1456文章皆来自CSDN网友maxleng的专栏,maxleng ... -
Android 内核编绎错误解决方案
2011-01-18 18:53 2609错误1: ...
相关推荐
Android 获取通讯录联系人信息源码~~~~~~~~~~~~~~~~
Android 获取系统联系人并发送短信demo
Android如何获取手机联系人信息,本文为大家揭晓。 获取手机联系人信息步骤: 1、获取 ContentResolver ContentResolver resolver = getContentResolver(); 2、resolver.query(*)查询信息 查询手机联系人的URI...
Android软件开发之获取通讯录联系人信息
android 联系人 SIM卡 最近联系人 通讯录 获取源代码
android系统获取联系人生日相关的信息,有需要的可以看看
Android获取联系人列表Demo,麻烦的50个字。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
Android通讯录管理(获取联系人、通话记录、短信消息),需要的打包带走
Android 读取联系人信息
一个简单的获取通讯录中的联系人的信息,进入通讯录,点击某一个联系人,然后马上返回,并获取了该联系人的姓名和电话号码
联系人管理指的是组织良好的联系人信息,即与客户的沟通、会议、电话、电子邮件,以及通过网站的交互。Android联系人管理应用能存储所有这些重要信息,使用户在需要时能快速方便地检索到它们。联系人管理模块不仅在...
主要介绍了Android获取手机通讯录、sim卡联系人及调用拨号界面方法,本文分别给出实现代码实现获取通讯录和sim卡的联系人,以及权限配置和调用系统拨打电话的界面的实现代码,需要的朋友可以参考下
Android 获取联系人 仿QQ通讯录
查看并获取联系人电话
android 获取手机联系人的工具类 源码 包括 手机SIM卡联系人 手机通讯录联系人
兼容各款机型,可直接按照我的博文步骤进行操作 地址:https://blog.csdn.net/qq_20451879/article/details/90718513
一个练习的小例子,获取通讯录中所有联系人的工具类,存储在Map中,Map中key为手机号,value为联系人的姓名。还提供了一个根据手机号查询该手机号的联系人姓名的功能。 注:同一联系人可以存储多个手机号,但是同一...
实现了调用手机自带通讯录获取联系人功能,可以自由选择联系人