android中通过条件查找通讯录联系人

android系统的通讯录存储是分表的,及用户资料和用户的手机号码是分开存储的,其中用户的手机号码表和用户的id是关联在一起的。这样就可以对用户的资料和号码更好的管理。通常在开发中使用查询的较多,那么我就把查询的代码跟大家共享一下
`**重点内容**
//得到ContentResolver对象
ContentResolver cr = getContentResolver();
//取得电话本中开始一项的光标
// Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
//根据传入的姓名查询通讯录,这个姓名就是上一个activity传过来的参数
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI,null,ContactsContract.PhoneLookup.DISPLAY_NAME+”=?”,new String[]{name},null);
Log.i(“main”,”———-cursor——-“+cursor);
//向下移动光标
while(cursor.moveToNext())
{
//取得联系人名字
int nameFieldColumnIndex = cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME);
String contact = cursor.getString(nameFieldColumnIndex);
//根据id获取手机号码,手机号码表和用户资料表根据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 PhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
string += (contact +”:”+ PhoneNumber +”\n”);
}
}
cursor.close();
//设置TextView显示的内容
tv_content.setText(string);
“`
这样就可以在textview上显示我们查询的通讯录信息了 。在用户表中的全部字段如下:
——–columnName————photo_uri
——–columnName————send_to_voicemail
——–columnName————contact_status
——–columnName————contact_status_label
——–columnName————pinned
——–columnName————display_name
——–columnName————phonebook_label_alt
——–columnName————phonebook_bucket
——–columnName————contact_status_res_package
——–columnName————in_default_directory
——–columnName————photo_id
——–columnName————custom_ringtone
——–columnName————_id
——–columnName————times_contacted
——–columnName————phonebook_label
——–columnName————account_type
——–columnName————display_name_alt
——–columnName————lookup
——–columnName————phonetic_name
——–columnName————last_time_contacted
——–columnName————contact_last_updated_timestamp
——–columnName————has_phone_number
——–columnName————in_visible_group
——–columnName————display_name_source
——–columnName————photo_file_id
——–columnName————is_user_profile
——–columnName————contact_status_ts
——–columnName————sort_key_alt
——–columnName————phonebook_bucket_alt
——–columnName————contact_presence
——–columnName————starred
——–columnName————photo_thumb_uri
——–columnName————contact_status_icon
——–columnName————account_name
——–columnName————contact_chat_capability
——-columnName————phonetic_name_style
——–columnName————name_raw_contact_id

大家可以根据传入不同的值来进行查询。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值