Android跳转到通讯录获取用户名称和手机号码的实现思路

 更新时间:2016年10月17日 10:40:20   作者:小哥在江湖  
这篇文章主要介绍了Android跳转到通讯录获取用户名称和手机号码的实现思路,当用户点击跳转到通讯录界面 并取通讯录姓名和手机号码 ,实现代码简单易懂,非常不错感兴趣的朋友一起看看吧

效果图如下所示:

先给大家说下实现android 跳转到通讯录的实现思路:

1.点击跳转到通讯录界面

2.获取通讯录姓名和手机号码

3.回调显示姓名和手机号码

1首先是跳转到通讯录界面

Uri uri = Uri.parse("content://contacts/people");
Intent intent = new Intent(Intent.ACTION_PICK, uri);
startActivityForResult(intent, 0);

通过设置通讯录url跳转,可以看到我们用回调函数实现

2.回调函数

/*
 * 跳转联系人列表的回调函数
 * */
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  switch (requestCode){
   case 0:
    if(data==null)
    {
     return;
    }
    //处理返回的data,获取选择的联系人信息
    Uri uri=data.getData();
    String[] contacts=getPhoneContacts(uri);
    et_name.setText(contacts[0]);
    et_tele.setText(contacts[1]);
    break;
  }
  super.onActivityResult(requestCode, resultCode, data);
 }

其中getPhoneContacts(uri)方法,因为手机的联系人和手机号并不再同一个数据库中,所以我们需要分别做处理

private String[] getPhoneContacts(Uri uri){
  String[] contact=new String[2];
  //得到ContentResolver对象
  ContentResolver cr = getContentResolver();
  //取得电话本中开始一项的光标
  Cursor cursor=cr.query(uri,null,null,null,null);
  if(cursor!=null)
  {
   cursor.moveToFirst();
   //取得联系人姓名
   int nameFieldColumnIndex=cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
   contact[0]=cursor.getString(nameFieldColumnIndex);
   //取得电话号码
   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);
   if(phone != null){
    phone.moveToFirst();
    contact[1] = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
   }
   phone.close();
   cursor.close();
  }
  else
  {
   return null;
  }
  return contact;
 }

3.加权限

<!--获取通讯录权限-->
<uses-permission Android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

以上所述是小编给大家介绍的Android跳转到通讯录获取用户名称和手机号码的实现思路,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Java4Android开发教程(二)hello world!

    Java4Android开发教程(二)hello world!

    一般的开发教程都是介绍完安装配置开发环境,紧接着来一篇hello world,算是国际惯例吧,我们当然也不能免俗,哈哈,各位看官请看好了!
    2014-10-10
  • Android 使用手机NFC的读取NFC标签数据的方法

    Android 使用手机NFC的读取NFC标签数据的方法

    这篇文章主要介绍了Android 使用手机NFC的读取NFC标签数据的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • android中多线程下载实例

    android中多线程下载实例

    本文以实例的方式为大家介绍下android中的多线程下载附源码,感兴趣的朋友可以学习下哈
    2013-06-06
  • Android自定义View实现角度选择器

    Android自定义View实现角度选择器

    前几天在Google Photos查看照片,用了一下它的图片剪裁功能,于是我马上就被其界面和操作吸引。后来想模仿做一个和Google Photos裁图页面几乎一模一样的角度选择器,本文比较基础,在阅读本文前只需要掌握最基础的自定义View知识和Android事件知识。下面来一起学习下吧。
    2016-11-11
  • 浅析Android位置权限以及数组寻找索引的坑

    浅析Android位置权限以及数组寻找索引的坑

    这篇文章给大家分享了Android位置权限以及数组寻找索引的坑的相关知识点内容,有兴趣的朋友可以参考学习下。
    2018-07-07
  • Android 实现获取手机里面的所有图片详解及实例

    Android 实现获取手机里面的所有图片详解及实例

    这篇文章主要介绍了Android 实现获取手机里面的所有图片详解及实例的相关资料,需要的朋友可以参考下
    2017-05-05
  • Android 自定义view实现TopBar效果

    Android 自定义view实现TopBar效果

    这篇文章主要为大家详细介绍了Android 自定义view实现TopBar效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • Android 程序应用的生命周期

    Android 程序应用的生命周期

    本篇文章小编为大家介绍,Android 程序应用的生命周期。需要的朋友参考下
    2013-04-04
  • Android控制界面刷新技巧汇总

    Android控制界面刷新技巧汇总

    这篇文章主要为大家详细介绍了Android控制界面刷新的小技巧,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • Android多设备多module打包fat-aar(最新推荐)

    Android多设备多module打包fat-aar(最新推荐)

    这篇文章主要介绍了Android多设备多module打包(fat-aar),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03

最新评论