获取android手机了通讯录和sim卡联系人

原创 2012年03月30日 12:13:23
private ArrayList<SamContact> getAllContacts()
{
ArrayList<SamContact> arrayList = new ArrayList<SamContact>();
//获取本机联系人
Cursor cur = getContentResolver().query(  
                ContactsContract.Contacts.CONTENT_URI,  
                null ,  
                null ,  
                null ,  
                ContactsContract.Contacts.DISPLAY_NAME  
                        + " COLLATE LOCALIZED ASC" );
if(cur.moveToFirst())
{
do{
SamContact samContact = new SamContact();
samContact.isChoosed = false;
int  idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);  
           int  displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
           // 获得联系人的ID号   
           String contactId = cur.getString(idColumn);  
           // 获得联系人姓名   
           String disPlayName = cur.getString(displayNameColumn);
           System.out.println(disPlayName);
           samContact.name = disPlayName;
           // 查看该联系人有多少个电话号码。如果没有这返回值为0   
           int  phoneCount = cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
           if(phoneCount <1)
           {
            continue;
           }
           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));  
                   int phoneType = phones  
                           .getInt(phones  
                                   .getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
                   if(phoneType == ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
                   {
                    samContact.phone = phoneNumber;
                    arrayList.add(samContact);
                    break;
                   }
               } while  (phones.moveToNext()); 
               
           }
           
           
           
}while(cur.moveToNext());
}
//获取sim卡联系人
Uri uri = Uri.parse("content://icc/adn");
Cursor cur2 = getContentResolver().query(  
uri,  
                null ,  
                null ,  
                null ,  
                ContactsContract.Contacts.DISPLAY_NAME  
                        + " COLLATE LOCALIZED ASC" );
System.out.println("contact num from sim card = "+cur2.getCount());
System.out.println("---------------");
if(cur2.moveToFirst())
{
do{
try 
{
SamContact samContact = new SamContact();
samContact.isChoosed = false;
           int  displayNameColumn = cur2.getColumnIndex(People.NAME);
           int  phoneColumn = cur2.getColumnIndex(People.NUMBER);
           samContact.name  = cur2.getString(displayNameColumn);
           if(samContact.name == null)
           {
            continue;
           }
           samContact.phone = cur2.getString(phoneColumn); 
           if(samContact.phone == null)
           {
            continue;
           }
           arrayList.add(samContact);

catch (Exception e) 
{
e.printStackTrace();

}while(cur2.moveToNext());
}


return arrayList;
}


public static class SamContact 
{
public String name = "";
public String phone = "";
public boolean isChoosed = false;

}

Android从SIM卡中获取联系人信息

Uri uri = Uri.parse("content://icc/adn"); String[] projection = {"_id", "name", "number"}; Curso...
  • jaycee110905
  • jaycee110905
  • 2013年02月22日 23:33
  • 3135

android 获取手机通讯录以及 6.0 授权

获取手机通讯录获取手机通讯录需要使用到 ContentProvider 的观察者 ContentResolver 来获取。` //获取手机通讯录联系人 ContentResolver reso...
  • jiaqiangziji
  • jiaqiangziji
  • 2016年06月14日 16:26
  • 5984

android中对sim卡联系人的增删改查以及监听sim卡联系数据的改变

主要是对sim卡联系人增删改查的一些操作,以及ContentObserver的使用,另外给大家推荐一个android源码查看的网址...
  • yin1031468524
  • yin1031468524
  • 2015年12月20日 21:04
  • 2707

将SIM卡上的联系人导入Android手机中

原文地址::http://www.ataaw.com/skill/541.html 新购买Android手机的朋友第一件事情可能就是需要将SIM卡上的联系人导入到手机中,但是许多朋友...
  • xqhrs232
  • xqhrs232
  • 2013年05月30日 20:31
  • 1156

获取手机通讯录的实战应用(含SIM卡中的联系人)

效果图:   正题: 本实例包含几下实际应用: 1. 获取手机通讯录(包括SIM卡中的联系人) 2. 几种Intent的传值应用 3. Adapter的自定义使用 4. AutoCo...
  • canvas18
  • canvas18
  • 2012年07月02日 18:53
  • 1373

获取手机通讯录的实战应用(含SIM卡中的联系人)

效果图:   正题: 本实例包含几下实际应用: 1. 获取手机通讯录(包括SIM卡中的联系人) 2. 几种Intent的传值应用 3. Adapter的自定义使用 4. AutoCo...
  • canvas18
  • canvas18
  • 2012年03月15日 20:19
  • 910

TelephonyManager类:Android手机及Sim卡状态的获取

转载地址:http://blog.csdn.net/sunxingzhesunjinbiao/article/details/7021328 Android本机号码及Sim卡状态的获...
  • fulinwsuafcie
  • fulinwsuafcie
  • 2012年05月29日 16:36
  • 1256

TelephonyManager类:Android手机及Sim卡状态的获取

Android本机号码及Sim卡状态的获取 TelephonyManager这个类很有用,可以得到很多关于手机和Sim卡的信息。 直接上注释后的代码,...
  • sunxingzhesunjinbiao
  • sunxingzhesunjinbiao
  • 2011年11月28日 22:45
  • 2353

TelephonyManager类:Android手机及Sim卡状态的获取

TelephonyManager这个类很有用,可以得到很多关于手机和Sim卡的信息。  直接上注释后的代码,请享用 package net.sunniwell.app; import ...
  • luck_apple
  • luck_apple
  • 2011年12月15日 14:58
  • 1385

Android手机与SIM卡通信的途经的研究报告

Sim Stk 工作原理:http://www.bladox.cz/devel-docs/gen_stk.html Ril 和 Tele 模块在stk中的工作逻辑:http://blog.sina....
  • enestzhang
  • enestzhang
  • 2014年02月24日 13:00
  • 2252
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:获取android手机了通讯录和sim卡联系人
举报原因:
原因补充:

(最多只允许输入30个字)