Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發之獲取聯系人信息

Android開發之獲取聯系人信息

編輯:關於Android編程

對於手機來說,聯系人分兩類:sim卡聯系人和手機內置聯系人。一般來說,sim卡聯系人不帶有更多信息(如通訊地址、頭像等),但是手機內置聯系人可以獲取更多信息。這些信息基本上都會綁定手機賬戶,方便手機用戶找回丟失的數據。下面是獲取聯系人信息的辦法:

java文件代碼(部分):

/** 獲取庫Phon表字段 **/

private static final String[] PHONES_PROJECTION = new String[] {

Phone.DISPLAY_NAME, Phone.NUMBER, Photo.PHOTO_ID, Phone.CONTACT_ID };


/** 聯系人顯示名稱 **/

private static final int PHONES_DISPLAY_NAME_INDEX = 0;


/** 電話號碼 **/

private static final int PHONES_NUMBER_INDEX = 1;


/** 頭像ID **/

private static final int PHONES_PHOTO_ID_INDEX = 2;


/** 聯系人的ID **/

private static final int PHONES_CONTACT_ID_INDEX = 3;


/** 聯系人名稱 **/

private ArrayList mContactsName = new ArrayList();


public ArrayList getmContactsName() {

return mContactsName;

}


public void setmContactsName(ArrayList mContactsName) {

this.mContactsName = mContactsName;

}


public ArrayList getmContactsNumber() {

return mContactsNumber;

}


public void setmContactsNumber(ArrayList mContactsNumber) {

this.mContactsNumber = mContactsNumber;

}


/** 聯系人頭像 **/

private ArrayList mContactsNumber = new ArrayList();


/** 聯系人頭像 **/

private ArrayList mContactsPhonto = new ArrayList();


/** 得到手機通訊錄聯系人信息 **/

public void getPhoneContacts() {


ContentResolver resolver = context.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 大於0 表示聯系人有頭像 如果沒有給此人設置頭像則給他一個默認的

// 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(

// m.getResources(), R.drawable.contact_photo);

// }


mContactsName.add(contactName);

mContactsNumber.add(phoneNumber);

}


phoneCursor.close();

}

}


/** 得到手機SIM卡聯系人人信息 **/

public void getSIMContacts() {


ContentResolver resolver = context.getContentResolver();

// 獲取Sims卡聯系人

Uri uri = Uri.parse("content://icc/adn");

Cursor phoneCursor = resolver.query(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);


// Sim卡中沒有聯系人頭像


mContactsName.add(contactName);

mContactsNumber.add(phoneNumber);

}


phoneCursor.close();

}

}

需要在MainFest.xml文件中申請的權限:

大功告成!

個人辛勤勞動成果,如有轉載,請注明出處,謝謝!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved