zoukankan      html  css  js  c++  java
  • android 获取电话本中的联系人列表

    本帖主要是修改了第二种方法在Android Studio中的运用

    首先这里介绍一下 获取思路。

    第一种 : 直接查通讯录的数据库  

    第二种 :设用通讯录的Activity 并返回所选择的数据。

    先实现第二种吧。、第二种相对简单,易操作、

    你要操作   手机中的通讯录,就要有权限 的操作。

    android 内核linux

    1、要在工程中 AndroidManifest.xml  文件中添加操作权限

    Xml代码  收藏代码
    1. <!-- 读取联系人权限 -->  
    2. <uses-permission android:name="android.permission.READ_CONTACTS" />  

     

    然后在你的activity 里面编写调用代码:

    Java代码  收藏代码
    1. Intent intent = new Intent();  
    2.        intent.setAction(Intent.ACTION_PICK);  
    3.        intent.setData(ContactsContract.Contacts.CONTENT_URI);  
    4.        startActivityForResult(intent, REQUEST_CONTACT);  

    //重写的结果返回方法
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
    case 1:
    if (data == null) {
    return;
    }
    Uri result = data.getData();
    String contactId = result.getLastPathSegment();

    String name = "";
    String phone = "";

    //得到名称
    String[] projection = new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME ,ContactsContract.Contacts.HAS_PHONE_NUMBER};
    Cursor cursor = mContext.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,
    projection, // select sentence
    ContactsContract.Contacts._ID + " = ?", // where sentence
    new String[] { contactId }, // where values
    ContactsContract.Contacts.DISPLAY_NAME); // order by

    if (cursor.moveToFirst()) {
    name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
    }

    //得到 电话
    projection = new String[] { ContactsContract.Contacts.NAME_RAW_CONTACT_ID, ContactsContract.Contacts.HAS_PHONE_NUMBER};
    cursor = mContext.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
    null, // select sentence
    ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId, // where sentence
    null , // where values
    null); // order by
    if (cursor.moveToFirst()) {
    phone = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
    }


    //显示

    Logger.i(TAG,name+":"+phone);

    break;
    }
    }

     

     就可以得到你选择的 联系的信息了。

    转载自 http://leiwuluan.iteye.com/blog/1511255

  • 相关阅读:
    【JUC源码解析】AQS
    【JUC源码解析】Exchanger
    圣杯布局和双飞翼布局的理解和区别
    右侧固定宽度,左侧自适应屏幕的布局(笔试题)
    CSS和CSS3中的伪元素和伪类(总结)
    用CSS创建小三角形问题(笔试题常考)
    Pycharm下载安装和使用
    PIC33单片机中断服务函数写法(其他单片机同样适用)
    记录,ubuntu16.04将gitlab迁移到docker上遇到的一些问题与解决方法
    【算法】 算法效率
  • 原文地址:https://www.cnblogs.com/Android-FJH/p/5015879.html
Copyright © 2011-2022 走看看