android选择联系人信息,从Android联系人选择器获取联系信息

电话号码

电话号码存储在自己的表中,需要单独查询。要查询电话号码表,请使用存储在SDK变量ContactsContract.CommonDataKinds.Phone.CONTENT_URI中的URI。使用WHERE条件获取指定联系人的电话号码。

if (Integer.parseInt(cur.getString(

cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {

Cursor pCur = cr.query(

ContactsContract.CommonDataKinds.Phone.CONTENT_URI,

null,

ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",

new String[]{id}, null);

while (pCur.moveToNext()) {

// Do something with phones

}

pCur.close();

}

针对Android联系人SQLite数据库执行第二个查询。将根据存储在ContactsContract.CommonDataKinds.Phone.CONTENT_URI中的URI查询电话号码。联系人ID作为ContactsContract.CommonDataKinds.Phone.CONTACT_ID存储在电话表中,WHERE子句用于限制返回的数据。

电子邮件地址

查询电子邮件地址与电话号码类似。必须执行查询才能从数据库获取电子邮件地址。查询存储在ContactsContract.CommonDataKinds.Email.CONTENT_URI中的URI以查询电子邮件地址表。

Cursor emailCur = cr.query(

ContactsContract.CommonDataKinds.Email.CONTENT_URI,

null,

ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",

new String[]{id}, null);

while (emailCur.moveToNext()) {

// This would allow you get several email addresses

// if the email addresses were stored in an array

String email = emailCur.getString(

emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));

String emailType = emailCur.getString(

emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));

}

emailCur.close();

与电话查询一样,电子邮件表的字段名称也存储在ContactsContract.CommonDataKinds下。电子邮件查询在ContactsContract.CommonDataKinds.Email.CONTENT_URI中的URI上执行,WHERE子句必须与ContactsContract.CommonDataKinds.Email.CONTACT_ID字段匹配。由于多个电子邮件地址可以存储循环通过在游标中返回的记录。

更多教程here

此方法需要Android API版本5或更高版本。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值