android开发教程之如何获取联系人名称?

来源:互联网 发布:java不允许重复登陆 编辑:程序博客网 时间:2024/05/16 18:04

     android开发教程之如何得到手机通讯录联系人信息?

  /**联系人名称**/

  private ArrayList mContactsName = new ArrayList();

  /**联系人号码**/

  private ArrayList mContactsNumber = new ArrayList();

  /**联系人头像**/

  private ArrayList mContactsPhonto = new ArrayList();

  private void getPhoneContacts() {

  ContentResolver resolver = getContentResolver();

  // 获取手机联系人

  Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,PHONES_PROJECTION, null, null, null);

  if (phoneCursor != null) {

  while (phoneCursor.moveToNext()) {

  //得到手机号码

  String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX);

  //当手机号码为空的或者为空字段 跳过当前循环

  if (TextUtils.isEmpty(phoneNumber))

  continue;

  //得到联系人名称

  String contactName = phoneCursor.getString(PHONES_DISPLAY_NAME_INDEX);

  //得到联系人ID

  Long contactid = phoneCursor.getLong(PHONES_CONTACT_ID_INDEX);

  //得到联系人头像ID

  Long photoid = phoneCursor.getLong(PHONES_PHOTO_ID_INDEX);

  //得到联系人头像Bitamp

  Bitmap contactPhoto = null;

  //photoid 大于表示联系人有头像 如果没有给此人设置头像则给他一个默认的

  if(photoid > 0 ) {

  Uri uri =ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,contactid);

  InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(resolver, uri);

  contactPhoto = BitmapFactory.decodeStream(input);

  }else {

  contactPhoto = BitmapFactory.decodeResource(getResources(), R.drawable.contact_photo);

  }

  mContactsName.add(contactName);

  mContactsNumber.add(phoneNumber);

  mContactsPhonto.add(contactPhoto);

  }

  phoneCursor.close();

  }

  }

  想要了解更多有关android开发的知识可以查询:天地会。

0 0
原创粉丝点击