看到App项目中有这样一个需求,自己花时间也做了下。某些在线购买或者快递业务等App会涉及到添加用户地址功能,就需要编辑用户名称、手机号码。这里就来实现快速跳转到通讯录界面获取通讯录用户信息的功能。

先看效果:

思路:

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.别忘了加权限

感觉这个体验还是挺好,估计以后会用到,记录在此

感觉好别忘了点赞!!重点内容!!

android uri 电话号码,Android跳转到通讯录获取用户名称和手机号码相关推荐

  1. android uri 电话号码,android 跳转通讯录 Android跳转到通讯录获取用户名称和手机号码的实现思路...

    想了解Android跳转到通讯录获取用户名称和手机号码的实现思路的相关内容吗,小哥在江湖在本文为您仔细讲解android 跳转通讯录的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:andr ...

  2. android 获取手机号码 权限,Android跳转到通讯录获取用户名称和手机号码

    思路: 1.点击跳转到通讯录界面 ` Uri uri = Uri.parse("content://contacts/people"); Intent intent = new I ...

  3. java自定义菜单跳转页面_微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解...

    微信公众号开发 自定义菜单 请先读完本文再进行配置开发 请先前往微信平台开发者文档阅读"网页授权获取用户基本信息"的接口说明 在微信公众账号开发中,往往有定义一个菜单,然后用户点击 ...

  4. 微信公众号开发--自定义菜单跳转页面并获取用户信息(续)

    之前写过一篇微信公众号开发–自定义菜单跳转页面并获取用户信息 由于当时是刚学习微信公众号开发当时的思路虽然可行,不过不是最好的,最近也用到了需要获取用户信息的地方,再次整理一下. 流程 注意点 ### ...

  5. 公众号如何跳转到页面php,图文详解微信公众号开发自定义菜单跳转页面并获取用户信息实例...

    这篇文章主要介绍了微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解的相关资料,需要的朋友可以参考下 微信公众号开发 自定义菜单 请先读完本文再进行配置开发 请先前往微信平台开发者文档阅读&qu ...

  6. 微信公众号-菜单连接跳转网页,获取用户OpenId

    流程: 菜单跳转URL设置为(更改自己公众号的appid 以及设置点击按钮后跳转的地址:redirect_uri) https://open.weixin.qq.com/connect/oauth2/ ...

  7. android uri db,Android ContentProvider封装数据库和文件读写总结

    本文是我各处东拼西凑加上自己实现一个ContentProvider的使用总结,留做后用,主要介绍ContentProvider的集成方法. 一.综述 ContentProvider是Android四大 ...

  8. android textview电话号码,Android应用开发之Android EditTextView 实现带空格分隔的输入(电话号码,银行卡)...

    本文将带你了解Android应用开发Android EditTextView 实现带空格分隔的输入(电话号码,银行卡),希望本文对大家学Android有所帮助. 电话号码输入框需求: 三位,七位后有空 ...

  9. android 蓝牙电话号码,Android拨打电话和蓝牙状态监听

    一.拨打电话 权限管理 思路 通过Intent设置Action为ACTION_DIAL或者 ACTION_CALL,通过intent启动直接拨打电话或者打开拨打电话界面. 示例代码 直接拨打电话 /* ...

最新文章

  1. Error: Gradle project sync failed. Please fix your project and try again.
  2. SCOM 如何监控生产环境中的LinuxUnix机器
  3. delphi 提取字符中的数字
  4. curl只能抓取页面的部分内容的原因
  5. Spring源码追踪3——AOP机制
  6. OpenCV4每日一练day12:双目相机标定
  7. jQuery窗口调整大小
  8. 我的实例我做主--ECS运维必读
  9. ATM取款机java的实现--练习代码
  10. 解决2种jni加载错误
  11. H3CSE认证网络工程师视频课程-广域网-宋文峰-专题视频课程
  12. BZOJ 3991 set维护dfs序
  13. PDF Expert for Mac 2.5.5 中文版 — PDF编辑工具
  14. 如何求七参数以及七参数在软件中的应用
  15. 虚拟机ping不通主机
  16. 信用卡还款怎么分期,还款还是要技巧的
  17. ubuntu20.04 外接显示器检测不到 未知的显示器 显卡安装黑屏 解决方案
  18. 【图文排版】微信文章怎样可以合理布局?
  19. requests之get请求带参数示例详解
  20. srsLTE 源码分析 UE_05 PLMN选择之小区选择

热门文章

  1. USBASP烧录出现的几种错误
  2. linux配置 rsync脚本
  3. 读《富兰克林自传》的一些体会
  4. Ribbon--概述
  5. fluent meshing导入二维网格
  6. 一阶数字低通滤波器的实现
  7. Type c口和Micro USB作为电源接口,原理图设计
  8. 微信小程序-注册登录功能-本地数据保存-页面数据交替
  9. python发微博_用 Python 自动发微博
  10. ISO20000认证需要什么材料