获得所有联系人信息。。。随便用,我也是借鉴别人的然后自己写出来的

http://blog.163.com/llllamso_0819@126/blog/static/64744319201011165422701/


package com.peoplenew;

import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.provider.ContactsContract;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.CommonDataKinds.Im;
import android.provider.ContactsContract.CommonDataKinds.Nickname;
import android.provider.ContactsContract.CommonDataKinds.Note;
import android.provider.ContactsContract.CommonDataKinds.Organization;
import android.util.Log;
import android.widget.ListView;
import android.widget.TextView;

public class ContactActivity extends Activity {

 private List<ContactPeople> peoples = null;
 private ListView listview;

 private StringBuffer strbuf = new StringBuffer();

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  listview = (ListView) findViewById(R.id.listview);
  peoples = getContact();
  listview.setAdapter(new MyAdapter(this, peoples));

 }

 public List<ContactPeople> getContact() {
  // 将所有联系人放入list
  List<ContactPeople> peoples = new ArrayList<ContactPeople>();
  // 获得所有的联系人
  Cursor cur = getContentResolver().query(
    ContactsContract.Contacts.CONTENT_URI,
    null,
    null,
    null,
    ContactsContract.Contacts.DISPLAY_NAME
      + " COLLATE LOCALIZED ASC");
  // 循环遍历
  if (cur.moveToFirst()) {
   int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);
   int displayNameColumn = cur
     .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
   do {
    // 联系人Bean 每读出一个联系人,就将其放入Bean中
    ContactPeople cp = new ContactPeople();
    // 获得联系人的ID号
    String contactId = cur.getString(idColumn);
    // 获得联系人姓名
    String disPlayName = cur.getString(displayNameColumn);
    // 查看该联系人有多少个电话号码。如果没有这返回值为0
    int phoneCount = cur
      .getInt(cur
        .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
    Log.i("username", disPlayName);
    cp.setContactName(disPlayName);
    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));
       String phoneType = phones
         .getString(phones
           .getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
       Log.i("phoneNumber", phoneNumber);
       Log.i("phoneType", phoneType);
       if (phoneType.equals("1")) {
        cp.setContactHomePhone(phoneNumber);
       } else {
        cp.setContactPhone(phoneNumber);
       }
      } while (phones.moveToNext());
     }
    }

    // 获取该联系人邮箱
    Cursor emails = getContentResolver().query(
      ContactsContract.CommonDataKinds.Email.CONTENT_URI,
      null,
      ContactsContract.CommonDataKinds.Phone.CONTACT_ID
        + " = " + contactId, null, null);
    if (emails.moveToFirst()) {
     do {
      // 遍历所有的Email
      String emailValue = emails
        .getString(emails
          .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
      Log.i("emailValue", emailValue);
      strbuf.append("Email:" + emailValue + "\n");
      cp.setContactEmail(emailValue);
     } while (emails.moveToNext());
    }

    // 获得联系人头像   
    Cursor image = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null,  
            "DISPLAY_NAME = '" + disPlayName + "'", null, null);
    if(image.moveToFirst()){
     do {
      // 遍历所有的头像   
      Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,  
                 Long.parseLong(contactId));  
      InputStream input =ContactsContract.Contacts.openContactPhotoInputStream(this.getContentResolver(), uri);         
      Bitmap contactPhoto = BitmapFactory.decodeStream(input);
      cp.setContactPhoto(contactPhoto);
     } while (image.moveToNext());
    }
    

    // 获取该联系人地址
    Cursor address = getContentResolver()
      .query(
        ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI,
        null,
        ContactsContract.CommonDataKinds.Phone.CONTACT_ID
          + " = " + contactId, null, null);
    if (address.moveToFirst()) {
     do {
      // 遍历所有的地址
      String street = address
        .getString(address
          .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
      String city = address
        .getString(address
          .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
      String region = address
        .getString(address
          .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
      String postCode = address
        .getString(address
          .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
      String formatAddress = address
        .getString(address
          .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS));
      Log.i("street", street);
      Log.i("city", city);
      Log.i("region", region);
      Log.i("postCode", postCode);
      Log.i("formatAddress", formatAddress);
      cp.setContactAddress(formatAddress);
     } while (address.moveToNext());
    }

    // 获取该联系人组织
    Cursor organizations = getContentResolver().query(
      Data.CONTENT_URI,
      new String[] { Data._ID, Organization.COMPANY,
        Organization.TITLE },
      Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
        + Organization.CONTENT_ITEM_TYPE + "'",
      new String[] { contactId }, null);
    if (organizations.moveToFirst()) {
     do {
      String company = organizations.getString(organizations
        .getColumnIndex(Organization.COMPANY));
      String post = organizations.getString(organizations
        .getColumnIndex(Organization.TITLE));
      Log.i("company", company);
      Log.i("title", post);
      cp.setContactOrganizCompany(company);
      cp.setContactOrganizPost(post);
     } while (organizations.moveToNext());
    }

    // 获取备注信息
    Cursor notes = getContentResolver().query(
      Data.CONTENT_URI,
      new String[] { Data._ID, Note.NOTE },
      Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
        + Note.CONTENT_ITEM_TYPE + "'",
      new String[] { contactId }, null);
    if (notes.moveToFirst()) {
     do {
      String noteinfo = notes.getString(notes
        .getColumnIndex(Note.NOTE));
      Log.i("noteinfo", noteinfo);
      cp.setContactRemark(noteinfo);
     } while (notes.moveToNext());
    }

    // 获取nickname信息
    Cursor nicknames = getContentResolver().query(
      Data.CONTENT_URI,
      new String[] { Data._ID, Nickname.NAME },
      Data.CONTACT_ID + "=?" + " AND " + Data.MIMETYPE + "='"
        + Nickname.CONTENT_ITEM_TYPE + "'",
      new String[] { contactId }, null);
    if (nicknames.moveToFirst()) {
     do {
      String nickname_ = nicknames.getString(nicknames
        .getColumnIndex(Nickname.NAME));
      Log.i("nickname_", nickname_);
      cp.setContactNickname(nickname_);
     } while (nicknames.moveToNext());
    }
    peoples.add(cp);
   } while (cur.moveToNext());

  }
  return peoples;
 }

}

 

 

package com.peoplenew;

import java.util.List;

import android.content.Context;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MyAdapter extends BaseAdapter {
 
 private List<ContactPeople> peoples=null;
 private LayoutInflater linearlayout;
 
 public MyAdapter(Context con,List<ContactPeople> listpeople){
  linearlayout=LayoutInflater.from(con);
  peoples=listpeople;  
 }

 @Override
 public int getCount() {
  // TODO Auto-generated method stub
  return peoples.size();
 }

 @Override
 public Object getItem(int position) {
  // TODO Auto-generated method stub
  return peoples.get(position);
 }

 @Override
 public long getItemId(int position) {
  // TODO Auto-generated method stub
  return position;
 }

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  // TODO Auto-generated method stub
  ListItems listitems;
  if(convertView==null){
   listitems=new ListItems();
   convertView=linearlayout.inflate(R.layout.listitems, null);
   listitems.name=(TextView)convertView.findViewById(R.id.name);
   listitems.phone=(TextView)convertView.findViewById(R.id.phone);
   listitems.homephone=(TextView)convertView.findViewById(R.id.homephone);
   listitems.email=(TextView)convertView.findViewById(R.id.email);
   listitems.address=(TextView)convertView.findViewById(R.id.address);
   listitems.company=(TextView)convertView.findViewById(R.id.company);
   listitems.post=(TextView)convertView.findViewById(R.id.post);
   listitems.remark=(TextView)convertView.findViewById(R.id.remark);
   listitems.nickname=(TextView)convertView.findViewById(R.id.nickname);
   listitems.photo=(ImageView)convertView.findViewById(R.id.photo);
   convertView.setTag(listitems);
  }else{
   listitems=(ListItems)convertView.getTag();
  }
  ContactPeople people=peoples.get(position);
  listitems.name.setText("姓名:"+people.getContactName());
  listitems.phone.setText("手机:"+people.getContactPhone());
  listitems.homephone.setText("宅电:"+people.getContactHomePhone());
  listitems.email.setText("邮箱:"+people.getContactEmail());
  listitems.address.setText("地址:"+people.getContactAddress());
  listitems.company.setText("公司:"+people.getContactOrganizCompany());
  listitems.post.setText("职位:"+people.getContactOrganizPost());
  listitems.remark.setText("备注:"+people.getContactRemark());
  listitems.nickname.setText("昵称:"+people.getContactNickname());  
  listitems.photo.setImageBitmap(people.getContactPhoto());
  return convertView;
 }
 
 class ListItems{
  private TextView name;
  private TextView phone;
  private TextView homephone;
  private TextView email;
  private TextView address;
  private TextView company;
  private TextView post;
  private TextView remark;
  private TextView nickname;
  private ImageView photo;
 }

}

 

 

 

 

package com.peoplenew;

import java.util.List;

import android.content.Context;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MyAdapter extends BaseAdapter {
 
 private List<ContactPeople> peoples=null;
 private LayoutInflater linearlayout;
 
 public MyAdapter(Context con,List<ContactPeople> listpeople){
  linearlayout=LayoutInflater.from(con);
  peoples=listpeople;  
 }

 @Override
 public int getCount() {
  // TODO Auto-generated method stub
  return peoples.size();
 }

 @Override
 public Object getItem(int position) {
  // TODO Auto-generated method stub
  return peoples.get(position);
 }

 @Override
 public long getItemId(int position) {
  // TODO Auto-generated method stub
  return position;
 }

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  // TODO Auto-generated method stub
  ListItems listitems;
  if(convertView==null){
   listitems=new ListItems();
   convertView=linearlayout.inflate(R.layout.listitems, null);
   listitems.name=(TextView)convertView.findViewById(R.id.name);
   listitems.phone=(TextView)convertView.findViewById(R.id.phone);
   listitems.homephone=(TextView)convertView.findViewById(R.id.homephone);
   listitems.email=(TextView)convertView.findViewById(R.id.email);
   listitems.address=(TextView)convertView.findViewById(R.id.address);
   listitems.company=(TextView)convertView.findViewById(R.id.company);
   listitems.post=(TextView)convertView.findViewById(R.id.post);
   listitems.remark=(TextView)convertView.findViewById(R.id.remark);
   listitems.nickname=(TextView)convertView.findViewById(R.id.nickname);
   listitems.photo=(ImageView)convertView.findViewById(R.id.photo);
   convertView.setTag(listitems);
  }else{
   listitems=(ListItems)convertView.getTag();
  }
  ContactPeople people=peoples.get(position);
  listitems.name.setText("姓名:"+people.getContactName());
  listitems.phone.setText("手机:"+people.getContactPhone());
  listitems.homephone.setText("宅电:"+people.getContactHomePhone());
  listitems.email.setText("邮箱:"+people.getContactEmail());
  listitems.address.setText("地址:"+people.getContactAddress());
  listitems.company.setText("公司:"+people.getContactOrganizCompany());
  listitems.post.setText("职位:"+people.getContactOrganizPost());
  listitems.remark.setText("备注:"+people.getContactRemark());
  listitems.nickname.setText("昵称:"+people.getContactNickname());  
  listitems.photo.setImageBitmap(people.getContactPhoto());
  return convertView;
 }
 
 class ListItems{
  private TextView name;
  private TextView phone;
  private TextView homephone;
  private TextView email;
  private TextView address;
  private TextView company;
  private TextView post;
  private TextView remark;
  private TextView nickname;
  private ImageView photo;
 }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值