获取android手机通讯录 SIM卡

通讯录上的信息,存储在两个地方,一个是

SIM

卡,一个是手机本地,

 

首先是手机本地:

Cursor cursor = 

getContentResolver().query(People.CONTENT_URI, null, 

null, null, null); 

while (cursor.moveToNext()) { 

ContactInfo cci = new ContactInfo(); 

//

取得联系人名字

 

int nameFieldColumnIndex = cursor.getColumnIndex(People.NAME); 

cci.contactName = cursor.getString(nameFieldColumnIndex); 

//

取得电话号码

 

int numberFieldColumnIndex = cursor.getColumnIndex(People.NUMBER); 

cci.userNumber = cursor.getString(numberFieldColumnIndex); 

cci.userNumber = GetNumber(cci.userNumber); 

cci.isChecked = false; 

if (IsUserNumber(cci.userNumber)) { 

if (!IsContain(contactList, cci.userNumber)) { 

if(IsAlreadyCheck(wNumStr, cci.userNumber)){ 

cci.isChecked = true; 

numberStr += "," + cci.userNumber; 

contactList.add(cci); 

//Log.i("eoe", "*********"+cci.userNumber); 

cursor.close(); 

下面是获取

SIM

卡:

 

//

SIM

卡中取号

 

private void GetSimContact(String add){ 

//

读取

SIM

卡手机号

,

有两种可能

:content://icc/adn

content://sim/adn 

try { 

Intent intent = new Intent(); 

intent.setData(Uri.parse(add)); 

Uri uri = intent.getData(); 

mCursor = getContentResolver().query(uri, null, null, null, null); 

if (mCursor != null) { 

while (mCursor.moveToNext()) { 

ContactInfo sci = new ContactInfo(); 

// 

取得联系人名字

 

int nameFieldColumnIndex = mCursor.getColumnIndex("name"); 

sci.contactName = mCursor.getString(nameFieldColumnIndex); 

// 

取得电话号码

 

int numberFieldColumnIndex = mCursor 

.getColumnIndex("number"); 

sci.userNumber = mCursor.getString(numberFieldColumnIndex); 

sci.userNumber = GetNumber(sci.userNumber); 

sci.isChecked = false; 

 

if (IsUserNumber(sci.userNumber)) { 

if (!IsContain(contactList, sci.userNumber)) { 

if(IsAlreadyCheck(wNumStr, sci.userNumber)){ 

sci.isChecked = true; 

numberStr += "," + sci.userNumber; 

contactList.add(sci); 

//Log.i("eoe", "*********"+sci.userNumber); 

mCursor.close(); 

} catch (Exception e) { 

Log.i("eoe", e.toString()); 

你可能感兴趣的:(获取android手机通讯录 SIM卡)