1. 程式人生 > >android獲取手機通訊錄和sim卡通訊錄

android獲取手機通訊錄和sim卡通訊錄

獲取手機通訊錄

1 許可權

<uses-permission android:name="android.permission.READ_CONTACTS"/>
注意6.0還需要動態許可權 demo會有詳細的

2.獲取手機通訊錄

// 獲取手機聯絡人
Cursor phoneCursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, PHONES_PROJECTION, null, null, null);
//得到手機號碼
String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX
);
//得到聯絡人名稱
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);

3.獲取sim卡通訊錄

// 獲取Sims卡聯絡人
Uri uri = Uri.parse("content://icc/adn");
Cursor phoneCursor = resolver.query(uri, 
PHONES_PROJECTION, null, null, null);
// 得到手機號碼
String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX);
// 得到聯絡人名稱
String contactName = phoneCursor
        .getString(PHONES_DISPLAY_NAME_INDEX);
si'm卡沒用頭像設定一個預設的頭像
//Sim卡中沒有聯絡人頭像
Bitmap contactPhoto = null;
contactPhoto = BitmapFactory.decodeResource
(getResources(), R.mipmap.ic_launcher);

4.統一手機號碼格式並去除不合格的手機號 

phoneNumber = phoneNumber.replaceAll(" ", "");
phoneNumber = phoneNumber.replaceAll("-", "");
phoneNumber = phoneNumber.replaceAll("\\+86", "");
if (phoneNumber.length() != 11)
    continue;
String substring = phoneNumber.substring(0, 1);
if (!substring.equals("1"))

qq互助群:471761982