android获取手机通讯录联系人

原文地址: http://blog.csdn.net/xujing81/article/details/7210308


android获取手机通讯录联系人信息

[java]  view plain copy
  1. private void getPhoneContacts() {    
  2.     ContentResolver resolver = this.getContentResolver();    
  3.         
  4.     // 获取手机联系人    
  5.    Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,  
  6.                 new String[] { Phone.CONTACT_ID, Phone.DISPLAY_NAME,  
  7.                         Phone.NUMBER },  
  8.                 Phone.DISPLAY_NAME + "=?" + " AND " + Phone.TYPE + "='"  
  9.                         + Phone.TYPE_MOBILE + "'"new String[] { name }, null);  
  10.     if (phoneCursor != null) {  
  11.         while (phoneCursor.moveToNext()) {  
  12.             String number = phoneCursor.getString(2);  
  13.                     // 当手机号码为空的或者为空字段 跳过当前循环    
  14.                     if (TextUtils.isEmpty(phoneNumber))    
  15.                         continue;  
  16.             // 得到联系人名称                
  17.             String username = phoneCursor.getString(1);  
  18.             mContactsName.add(contactName);    
  19.                 mContactsNumber.add(phoneNumber);  
  20.   
  21.         }  
  22.         phoneCursor.close();  
  23.     }   
  24. }  

获得手机sim卡联系人信息

sim卡和手机本人 获取的方式类似 只是url有点不一样 ,须要注意的一点是 sim卡  是没有联系人头像的。

[java]  view plain copy
  1. private void getSIMContacts() {    
  2.     ContentResolver resolver = mContext.getContentResolver();    
  3.     // 获取Sims卡联系人    
  4.     Uri uri = Uri.parse("content://icc/adn");    
  5.     Cursor phoneCursor = resolver.query(uri,  
  6.                 new String[] { Phone.CONTACT_ID, Phone.DISPLAY_NAME,  
  7.                         Phone.NUMBER },  
  8.                 Phone.DISPLAY_NAME + "=?" + " AND " + Phone.TYPE + "='"  
  9.                         + Phone.TYPE_MOBILE + "'"new String[] { name }, null);  
  10.     if (phoneCursor != null) {  
  11.         while (phoneCursor.moveToNext()) {  
  12.             String number = phoneCursor.getString(2);  
  13.                     // 当手机号码为空的或者为空字段 跳过当前循环    
  14.                     if (TextUtils.isEmpty(phoneNumber))    
  15.                         continue;  
  16.             // 得到联系人名称                
  17.             String username = phoneCursor.getString(1);  
  18.             mContactsName.add(contactName);    
  19.                 mContactsNumber.add(phoneNumber);  
  20.   
  21.         }  
  22.         phoneCursor.close();  
  23.     }  
  24. }  

调用系统拨打电话的界面 ,代码如下。
tel:电话号码

[java]  view plain copy
  1. //调用系统方法拨打电话    
  2.     Intent dialIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + mContactsNumber.get(position)));    
  3.     startActivity(dialIntent);   

最后,千万别忘记在AndroidManifest.xml文件中添加权限,否则运行程序是报错!

[html]  view plain copy
  1. <!-- 读取联系人权限 -->     
  2. <uses-permission android:name="android.permission.READ_CONTACTS"/>    
  3. <!-- 拨打电话权限 -->    
  4. <uses-permission android:name="android.permission.CALL_PHONE"/>  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值