android2.1获得联系人信息+Android 获取信息终端

本文介绍了在Android 2.1中如何使用ContactsContract获取联系人信息,包括查询联系人ID、显示名称和电话号码。同时展示了如何过滤出仅包含手机号码的联系人。此外,还讲解了通过TelephonyManager获取SIM卡的国家代码和序列号的方法,这些都需要在AndroidManifest.xml中添加READ_PHONE_STATE权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android 获取信息终端
http://www.cnmsdn.com/  2010年08月23日 11:19  收藏本页

  获取SIM卡提供国家代码(ISO)

  Java代码

  TelephonyManager telManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

  telManager.getSimCountryIso();

  TelephonyManager telManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

  telManager.getSimCountryIso();

  SIM卡的序列号

  Java代码

  TelephonyManager telManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

  telManager.getSimSerialNumber();

  TelephonyManager telManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

  telManager.getSimSerialNumber();

  获取其他信息以此类推

  AndroidManifest.xml必须以下设置

  Xml代码

  < uses-permission android:name="android.permission.READ_PHONE_STATE" />

1.android2.1获得联系人信息

 

从android2.0开始,联系人的API做了很大的调整。

  People接口由ContactsContract.Contacts代替。

  闲话不多说看代码。

 

Java代码

 

  public void getContact(){

  //获得所有的联系人

  Cursor cur = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);

  //循环遍历

  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));

  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));

  System.out.println(phoneNumber);

  }while(phones.moveToNext());

  }

  }

  } while (cur.moveToNext());

  }

  }

  在联系人的电话号码中有很多种,如果只想获得手机号码。代码如下:

  Cursor phones = mContext.getContentResolver().query(

  ContactsContract.CommonDataKinds.Phone.CONTENT_URI,

  null,

  ContactsContract.CommonDataKinds.Phone.CONTACT_ID

  + " = " + contactId +" and "+ContactsContract.CommonDataKinds.Phone.TYPE+"="+ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE, null, null);

 

 

2.Android 获取信息终端:

 

获取SIM卡提供国家代码(ISO)

  Java代码

  TelephonyManager telManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

  telManager.getSimCountryIso();

  TelephonyManager telManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

  telManager.getSimCountryIso();

  SIM卡的序列号

  Java代码

  TelephonyManager telManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

  telManager.getSimSerialNumber();

  TelephonyManager telManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

  telManager.getSimSerialNumber();

  获取其他信息以此类推

  AndroidManifest.xml必须以下设置

  Xml代码

  < uses-permission android:name="android.permission.READ_PHONE_STATE" />

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值