Android 获取手机联系人

这几天做了一个项目要用到获取手机联系人的东东,自己就写了一个获取通讯录的东东,这种东西在手机端是有Api可以供我们使用的。

下边是代码

/**
 * @author BJShiJiHuiTou
 * 
 */
public class MainActivity extends Activity {
private TextView tv_showtext;
private Context mContext;
/** 获取库Phon表字段 **/
private static final String[] PHONES_PROJECTION = new String[] {
Phone.DISPLAY_NAME, Phone.NUMBER, Photo.PHOTO_ID, Phone.CONTACT_ID };


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = this;
tv_showtext = (TextView) findViewById(R.id.tv_showtext);
getPhoneNum();// 得到手机的联系人
getSimPhoneNum();// 得到sim卡上的联系人


}


private void getSimPhoneNum() {
ContentResolver resolver = mContext.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(1);
// 得到联系人名称
String contactName = phoneCursor.getString(0);
System.out.println("simphoneNumber:"+phoneNumber);
System.out.println("simcontactName:"+contactName);
}
phoneCursor.close();

}
System.out.println("sim卡没有联系人");
}


private void getPhoneNum() {
ContentResolver resolver = mContext.getContentResolver();
Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,
PHONES_PROJECTION, null, null, null);


if (phoneCursor != null) {
StringBuilder str = new StringBuilder("");
while (phoneCursor.moveToNext()) {
// 得到手机号码
String phoneNumber = phoneCursor.getString(1);
// 得到联系人名称
String contactName = phoneCursor.getString(0);
str.append("" + contactName + "" + phoneNumber + "\n");
// System.out.println("name:"+contactName+"--phoneNumber:"+phoneNumber);


}
phoneCursor.close();


tv_showtext.setText(str);
}


}

当然也别忘了添加权限

 <uses-permission android:name="android.permission.READ_CONTACTS"/>

因为现在好多的智能手机的电话号码都是默认保存在手机上的,所以sim卡上的信息未做处理


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值