- 浏览: 250378 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (289)
- java (72)
- oracle (3)
- mysql (5)
- spring (28)
- hibernate (2)
- osgi (0)
- linux (2)
- ExtJs (1)
- jvm (0)
- mybatis (7)
- 分布式 (11)
- MINA (6)
- apache+tomcat (13)
- js+htm (7)
- android (44)
- http (1)
- hbase+hdoop (0)
- memcache (13)
- search (27)
- 部署及性能 (12)
- mongoDB (2)
- 多线程 (12)
- 安全管理验证 (9)
- struts (1)
- webservice (0)
- easyUI (1)
- spring security (16)
- pattern (6)
- 算法 (2)
最新评论
-
lzh8189146:
CommonsHttpSolrServer这个类,现在是不是没 ...
CommonsHttpSolrServer -
xiaochanzi:
我按照你的方法试了下,tomcat6可以发布,但是访问任何网页 ...
基于内嵌Tomcat的应用开发 -
phoneeye:
麻烦你,如果是抄来的文章,请给出来源。谢谢
ant 两则技巧 -
neverforget:
转载不注明出处
Spring Security3.1登陆验证 替换 usernamepasswordfilter -
liang1022:
若不使用eclipse ,如何在命令行下 运行服务端程序 ?
WebService CXF学习(入门篇2):HelloWorld
android 获取手机通讯录信息
- 博客分类:
- android
android 获取手机通讯录信息
博客分类: android
Android代码获得通讯录
protected void getContactInfo() {
//获得通讯录信息 ,URI是ContactsContract.Contacts.CONTENT_URI
Cursor cursor = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
//获得通讯录中每个联系人的ID
String contactId = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts._ID));
//获得通讯录中联系人的名字
String name = cursor
.getString(cursor
.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
Log.v(TAG, "…name…" + name);
//查看给联系人是否有电话,返回结果是String类型,1表示有,0表是没有
String hasPhone = cursor
.getString(cursor
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (hasPhone.equalsIgnoreCase("1"))
hasPhone = "true";
else
hasPhone = "false";
//如果有电话,根据联系人的ID查找到联系人的电话,电话可以是多个
if (Boolean.parseBoolean(hasPhone)) {
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
while (phones.moveToNext()) {
String phoneNumber = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.v(TAG, "…phoneNumber… " + phoneNumber);
}
phones.close();
}
//查找email地址,这里email也可以有多个
Cursor emails = getContentResolver().query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = "
+ contactId, null, null);
while (emails.moveToNext()) {
String emailAddress = emails
.getString(emails
.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
Log.v(TAG, "…emailAddress… " + emailAddress);
}
emails.close();
//获得联系人的地址
Cursor address = getContentResolver()
.query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID
+ " = " + contactId, null, null);
while (address.moveToNext()) {
// These are all private class variables, don’t forget to create
// them.
String poBox = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX));
String street = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
String city = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
String state = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
String postalCode = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
String country = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY));
String type = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE));
Log.v(TAG, "…city… " + city);
}
}
cursor.close();
}
另一种方法
1。通讯录上的信息,存储在两个地方,一个是SIM卡,一个是手机本地,
首先是手机本地:Cursor cursor = getContentResolver().query(People.CONTENT_URI, null,
null, null, null);
while (cursor.moveToNext()) {
ContactInfo cci = new ContactInfo();
//取得联系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(People.NAME);
cci.contactName = cursor.getString(nameFieldColumnIndex);
//取得电话号码
int numberFieldColumnIndex = cursor.getColumnIndex(People.NUMBER);
cci.userNumber = cursor.getString(numberFieldColumnIndex);
cci.userNumber = GetNumber(cci.userNumber);
cci.isChecked = false;
if (IsUserNumber(cci.userNumber)) {
if (!IsContain(contactList, cci.userNumber)) {
if(IsAlreadyCheck(wNumStr, cci.userNumber)){
cci.isChecked = true;
numberStr += "," + cci.userNumber;
}
contactList.add(cci);
//Log.i("eoe", "*********"+cci.userNumber);
}
}
}
cursor.close();
}
下面是获取SIM卡:
//从SIM卡中取号
private void GetSimContact(String add){
//读取SIM卡手机号,有两种可能:content://icc/adn与content://sim/adn
try {
Intent intent = new Intent();
intent.setData(Uri.parse(add));
Uri uri = intent.getData();
mCursor = getContentResolver().query(uri, null, null, null, null);
if (mCursor != null) {
while (mCursor.moveToNext()) {
ContactInfo sci = new ContactInfo();
// 取得联系人名字
int nameFieldColumnIndex = mCursor.getColumnIndex("name");
sci.contactName = mCursor.getString(nameFieldColumnIndex);
// 取得电话号码
int numberFieldColumnIndex = mCursor
.getColumnIndex("number");
sci.userNumber = mCursor.getString(numberFieldColumnIndex);
sci.userNumber = GetNumber(sci.userNumber);
sci.isChecked = false;
if (IsUserNumber(sci.userNumber)) {
if (!IsContain(contactList, sci.userNumber)) {
if(IsAlreadyCheck(wNumStr, sci.userNumber)){
sci.isChecked = true;
numberStr += "," + sci.userNumber;
}
contactList.add(sci);
//Log.i("eoe", "*********"+sci.userNumber);
}
}
}
mCursor.close();
}
} catch (Exception e) {
Log.i("eoe", e.toString());
}
}
以上是将获取到的信息对象方法ArrayList<ContactInfo> contactList里面,然后砸显示的是采用适配器,这样就完成了
在写的时候,一定要注意获取的方式
博客分类: android
Android代码获得通讯录
protected void getContactInfo() {
//获得通讯录信息 ,URI是ContactsContract.Contacts.CONTENT_URI
Cursor cursor = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
//获得通讯录中每个联系人的ID
String contactId = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts._ID));
//获得通讯录中联系人的名字
String name = cursor
.getString(cursor
.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
Log.v(TAG, "…name…" + name);
//查看给联系人是否有电话,返回结果是String类型,1表示有,0表是没有
String hasPhone = cursor
.getString(cursor
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (hasPhone.equalsIgnoreCase("1"))
hasPhone = "true";
else
hasPhone = "false";
//如果有电话,根据联系人的ID查找到联系人的电话,电话可以是多个
if (Boolean.parseBoolean(hasPhone)) {
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
while (phones.moveToNext()) {
String phoneNumber = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.v(TAG, "…phoneNumber… " + phoneNumber);
}
phones.close();
}
//查找email地址,这里email也可以有多个
Cursor emails = getContentResolver().query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = "
+ contactId, null, null);
while (emails.moveToNext()) {
String emailAddress = emails
.getString(emails
.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
Log.v(TAG, "…emailAddress… " + emailAddress);
}
emails.close();
//获得联系人的地址
Cursor address = getContentResolver()
.query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID
+ " = " + contactId, null, null);
while (address.moveToNext()) {
// These are all private class variables, don’t forget to create
// them.
String poBox = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX));
String street = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
String city = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
String state = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
String postalCode = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
String country = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY));
String type = address
.getString(address
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE));
Log.v(TAG, "…city… " + city);
}
}
cursor.close();
}
另一种方法
1。通讯录上的信息,存储在两个地方,一个是SIM卡,一个是手机本地,
首先是手机本地:Cursor cursor = getContentResolver().query(People.CONTENT_URI, null,
null, null, null);
while (cursor.moveToNext()) {
ContactInfo cci = new ContactInfo();
//取得联系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(People.NAME);
cci.contactName = cursor.getString(nameFieldColumnIndex);
//取得电话号码
int numberFieldColumnIndex = cursor.getColumnIndex(People.NUMBER);
cci.userNumber = cursor.getString(numberFieldColumnIndex);
cci.userNumber = GetNumber(cci.userNumber);
cci.isChecked = false;
if (IsUserNumber(cci.userNumber)) {
if (!IsContain(contactList, cci.userNumber)) {
if(IsAlreadyCheck(wNumStr, cci.userNumber)){
cci.isChecked = true;
numberStr += "," + cci.userNumber;
}
contactList.add(cci);
//Log.i("eoe", "*********"+cci.userNumber);
}
}
}
cursor.close();
}
下面是获取SIM卡:
//从SIM卡中取号
private void GetSimContact(String add){
//读取SIM卡手机号,有两种可能:content://icc/adn与content://sim/adn
try {
Intent intent = new Intent();
intent.setData(Uri.parse(add));
Uri uri = intent.getData();
mCursor = getContentResolver().query(uri, null, null, null, null);
if (mCursor != null) {
while (mCursor.moveToNext()) {
ContactInfo sci = new ContactInfo();
// 取得联系人名字
int nameFieldColumnIndex = mCursor.getColumnIndex("name");
sci.contactName = mCursor.getString(nameFieldColumnIndex);
// 取得电话号码
int numberFieldColumnIndex = mCursor
.getColumnIndex("number");
sci.userNumber = mCursor.getString(numberFieldColumnIndex);
sci.userNumber = GetNumber(sci.userNumber);
sci.isChecked = false;
if (IsUserNumber(sci.userNumber)) {
if (!IsContain(contactList, sci.userNumber)) {
if(IsAlreadyCheck(wNumStr, sci.userNumber)){
sci.isChecked = true;
numberStr += "," + sci.userNumber;
}
contactList.add(sci);
//Log.i("eoe", "*********"+sci.userNumber);
}
}
}
mCursor.close();
}
} catch (Exception e) {
Log.i("eoe", e.toString());
}
}
以上是将获取到的信息对象方法ArrayList<ContactInfo> contactList里面,然后砸显示的是采用适配器,这样就完成了
在写的时候,一定要注意获取的方式
发表评论
-
android之ConnectivityManager简介,网络连接状态
2012-09-13 10:56 903转发:http://blog.csdn.net/chenzhe ... -
解决Android布局中ScrollView与ListView的冲突
2012-08-27 09:25 711http://06peng.com/read.php/7.ht ... -
APK_获取Android的APK包签名信息
2012-08-02 14:09 1251http://blog.csdn.net/jiguanghov ... -
Android系列之Android 命令行手动编译打包详解
2012-08-01 22:08 873http://blog168.chinaunix.net/sp ... -
Android屏幕锁定详解(一)
2012-06-17 21:35 782http://mzh3344258.blog.51cto.co ... -
Android Intent.ACTION_CHOOSER 与 Intent.ACTION_PICK_ACTIVITY
2012-06-15 14:02 1401http://blog.csdn.net/feng88724/ ... -
Android绘制进阶之一:图形的绘制
2012-06-15 11:28 714http://mikewang.blog.51cto.com/ ... -
Android画图之Matrix(一)
2012-06-14 16:53 677http://chroya.iteye.com/blog/71 ... -
Android Bitmap和Canvas学习笔记 Android Bitmap和Canvas学习笔记
2012-06-14 14:04 694http://www.pin5i.com/showtopic- ... -
Paint类介绍
2012-06-14 13:41 662** * Paint类介绍 * ... -
Android Activity和Intent机制学习笔记 打电话,发短信等练习
2012-06-12 13:22 1073http://ycl248.blog.163.com/blog ... -
taskAffinity属性
2012-06-12 13:22 655taskAffinity属性 分类: Android 2011 ... -
区分Activity的四种加载模式----以及Intent的setFlags
2012-06-12 13:22 674区分Activity的四种加载模式----以及Intent的s ... -
android 自带的主题 theme 的使用
2012-06-12 13:22 1112android 自带的主题 theme 的使用 2011 ... -
TextView小组件的使用--附带超链接和跑马灯效果
2012-06-07 08:40 775TextView小组件的使用--附带超链接和跑马灯效果 分类: ... -
EditText使用详解
2012-06-07 08:40 827EditText使用详解 分类: ... -
(转)解决requestFocus后依旧无法获得焦点问题
2012-06-07 08:40 1399(转)解决requestFocus后依旧无法获得焦点问题 博 ... -
android 在程序中开启GPS功能
2012-06-07 08:40 1042android 在程序中开启GPS功能 LocationMan ... -
转到手机设置界面
2012-06-06 16:34 0//转到手机设置界面 Intent intent=new In ... -
详解android:scaleType属性
2012-06-12 13:22 597详解android:scaleType属性 博客分类: An ...
相关推荐
demo实现了Android获取手机通讯录信息,只需获取权限和创建工具方法即可,轻量快捷
主要介绍了Android获取手机通讯录、sim卡联系人及调用拨号界面方法,本文分别给出实现代码实现获取通讯录和sim卡的联系人,以及权限配置和调用系统拨打电话的界面的实现代码,需要的朋友可以参考下
android 获取手机通讯录联系人信息,点击直接拨打电话源码 关注博客http://himici.com/
获取手机通讯录所有字段,姓名,手机号,电话号,公司电话,邮件等
包括手机客户端,服务端程序,手机需通过usb连接线与PC相连。
安卓Android源码——获取手机通讯录的实战应用(含SIM卡中的联系人).rar
android仿手机通讯录搜索、首字母排序效果 获取手机通讯录联系人显示;
用于与博客匹配的资源,简单学习Android 中读取通讯录的操作,方便大家进行学习和思考。仅用于学习参考,谢谢
基于android获取手机通讯录的实战应用(含SIM卡中的联系人)程序源码+文档
1、获取手机通讯录的信息;2、手机通讯录的数据封装;3、手机通讯录的信息的UI适配;4、对ListView的优化。
android 8.1系统蓝牙连接,获取通讯录及通话记录、蓝牙电话等相关代码逻辑梳理
android获取手机通讯录的实战应用(含SIM卡中的联系人)
Android如何获取手机联系人信息,本文为大家揭晓。 获取手机联系人信息步骤: 1、获取 ContentResolver ContentResolver resolver = getContentResolver(); 2、resolver.query(*)查询信息 查询手机联系人的URI...
Android项目获取手机通讯录的实战应用(含SIM卡中的联系人).rar
获取系统通讯录并且返回所选的联系人。之前一直都是通过ContentResolver 一大堆的 sql 来获取,然后在自己的界面上显示这些联系人,感觉不爽 ,后来就读了些文档, 发现可以直接调用手机系统中的联系人。不用去画...
Android 使用获取手机通讯录的姓名,电话,头像和邮箱实现
一个简单的使用Android Studio写的获取通讯录内容并且打电话发短信,如果安装完后APP闪退,请到设置中权限将相应的权限给他。
一个练习的小例子,获取通讯录中所有联系人的工具类,存储在Map中,Map中key为手机号,value为联系人的姓名。还提供了一个根据手机号查询该手机号的联系人姓名的功能。 注:同一联系人可以存储多个手机号,但是同一...
基于android手机通讯录的设计与实现毕业论文
安卓Android源码——获取手机通讯录的实战应用(含SIM卡中的联系人).zip