Android 2.0读取通信录_----欢迎光临Foolish Stone Blog--- ---网络 ...
Andorid1.5及其以前的项目放到Android2.0上时,如果代码中有
import android.provider.Contacts;  
Eclipse会提示“建议不使用”,那是因为在Android2.0中,联系人api发生了变化,需要使用ContactsContract。
直接看下面一个最简单的例子,读取联系人的姓名和电话号码:
读取联系人的名字很简单,但是在读取电话号码时,就需要先去的联系人的ID,然后在通过ID去查找电话号码!一个联系人可能存在多个电话号码!

//得到ContentResolver对象
ContentResolver cr = getContentResolver();    
//取得电话本中开始一项的光标
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext())
{
// 取得联系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);
String name = cursor.getString(nameFieldColumnIndex);
string += (name);
// 取得联系人ID
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,    ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "  
         + contactId, null, null);
  
// 取得电话号码(可能存在多个号码)
while (phone.moveToNext())
{
       String strPhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
       string += (":" + strPhoneNumber);
}
string += "\n";
phone.close();
}
cursor.close();  
不过还没有弄清楚是否像Android 1.5版本里有区分多个号码中是:家庭号码,还是手机号码,工作号码!


郑重声明:资讯 【Android 2.0读取通信录_----欢迎光临Foolish Stone Blog--- ---网络 ...】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——