android实现读取、搜索联系人的代码

代码很简单,就不多废话了

代码如下:

//读取联系人
public static Uri CONTACTSURI = ContactsContract.Contacts.CONTENT_URI;//联系人
    public static void getContactsInfo(Context context,String tag){
        String[] projections = new String[]{ContactsContract.Contacts._ID,ContactsContract.Contacts.DISPLAY_NAME};
        Cursor cursor = context.getContentResolver().query(CONTACTSURI, projections, null, null, null);
        int albumIndex = cursor.getColumnIndexOrThrow(projections[0]);
        int titleIndex = cursor.getColumnIndexOrThrow(projections[1]);
        Log.d(tag, cursor.getCount()+"");
        while(cursor.moveToNext()){
            String album = cursor.getString(albumIndex);
            String title = cursor.getString(titleIndex);
            Log.d(tag, album+":"+title);
        }
        cursor.close();
    }
    
    //根据联系人搜索联系人信息
    public static void searchContacts(Context context,String tag){
        String searchName = "Wang";
        Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_FILTER_URI, searchName);
        
    //  Uri uri2 = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, phoneNumber); 根据电话号码查找联系人
        
        String[] projection = new String[]{ContactsContract.Contacts._ID};
        Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null);
        String id = null;
        if (cursor.moveToFirst()) {
            id = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts._ID));
        }
        cursor.close();
        if (id!=null) {
            String where = ContactsContract.Data._ID+"="+id;
            projection = new String[]{ContactsContract.Data.DISPLAY_NAME,ContactsContract.CommonDataKinds.Phone.NUMBER};
            Cursor searchcCursor = context.getContentResolver().query(ContactsContract.Data.CONTENT_URI, projection, where, null, null);
            Log.d(tag, searchcCursor.getCount()+"");
            int nameIndex = searchcCursor.getColumnIndex(projection[0]);
            int numberIndex = searchcCursor.getColumnIndex(projection[1]);
            while(searchcCursor.moveToNext()){
                String name = searchcCursor.getString(nameIndex);
                String number = searchcCursor.getString(numberIndex);
                Log.d(tag, number+":"+name);
            }
            searchcCursor.close();
        }
    }

以上就是本文给大家分享的代码的全部内容了,希望大家能够喜欢。

(0)

相关推荐

  • Android实现新增及编辑联系人的方法

    本文实例介绍了Android开发中对联系人修改.新增联系人的方法,通过本实例代码可实现添加联系人.编辑修改联系人,新增联系人和更新联系人等操作,操作主要放在线程中处理,并且在操作的过程中,显示圆形进度条,在Android系统中,这是种比较常见的进度条风格. 具体功能代码如下所示: package huahua.contactsfragment; import java.util.Collections; import huahua.huahuacontacts.R; import huahua.

  • Android中删除文件以及文件夹的命令记录

    记录一下命令: tools>adb remount tools>adb shell #su #cd system/sd/data //进入系统内指定文件夹 #ls //列表显示当前文件夹内容 #rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件 #rm xxx //删除文件xxx #rmdir xxx //删除xxx的文件夹

  • Android开发实现删除联系人通话记录的方法

    本文实例讲述了Android开发实现删除联系人通话记录的方法.分享给大家供大家参考,具体如下: 1. 负责存放呼叫记录的内容提供者源码在 ContactsProvider 项目下: 源码路径: com/Android/providers/contacts/CallLogProvider.Java 使用到的数据库在: /data/data/com.android.providers.contacts/databases/contacts2.db 表名:calls 呼叫记录有三种类型: 来电:Cal

  • Android获取手机通话记录的方法

    Android如何获取手机通话记录,本文为大家揭晓. 获取手机通话记录流程: 1. 获取ContentResolver; ContentResolver resolver = getContentResolver(); 2.resolver.query(*); 需要传入通话记录的URI:CallLog.Calls.CONTENT_URI 3.对查询得到的Cursor进行数据获取. 主要代码如下: MainActivity.java package com.noonecode.contentres

  • Android根据电话号码获得联系人头像实例代码

    在日常Android手机的使用过程中,根据电话号码获得联系人头像,是经常会碰到的问题.本文即以实例形式讲述了Android根据电话号码获得联系人头像是实现代码.分享给大家供大家参考之用.具体方法如下: 首先,通过ContentProvider,可以访问Android中的联系人等数据.常用的Uri有: 联系人信息Uri:content://com.android.contacts/contacts 联系人电话Uri:content://com.android.contacts/data/phone

  • android 加载本地联系人实现方法

    首先先建布局文件,界面很简单,就是一个搜索框和下面的联系人列表:   复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layou

  • Android获取手机通讯录、sim卡联系人及调用拨号界面方法

    android获取手机通讯录联系人信息 复制代码 代码如下: private void getPhoneContacts() {        ContentResolver resolver = this.getContentResolver();                // 获取手机联系人       Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,                  new String[] { Phone

  • Android之联系人PinnedHeaderListView使用介绍

    Android联系人中的ListView是做得比较独特的,但是源码写得比较复制,当我们想使用他的时候再从源码中提取,实属不易啊,而且容易出错,这几天,我把他提取出来了,写成一个简单的例子,一是给自己备忘,而是跟大家分享一下,好了,先来看看效果图:  首先是封装好的带头部的PinnedHeaderListView: 复制代码 代码如下: public class PinnedHeaderListView extends ListView { public interface PinnedHeade

  • Android通话记录备份实现代码

    (一) 前言 Android默认提供了联系人备份到sd卡的功能(代码在com.android.vcard包里面),我们可以把联系人导出成.vcf文件存在sd卡中:如果换手机了,我们又可以把联系人从sd卡文件中导入进来.那么,通话记录我们也能不能做出类似的功能呢?答案是肯定的! (二) 导出通话记录 既然是备份通话记录,那就肯定包括导出和导入的功能,这里我们先讲导出通话记录. 1. 根据通话记录导出的规范,导出的文件一般以.vcl后缀结尾,中间的内容是 复制代码 代码如下: BEGIN:VCALL

  • android获取联系人示例分享

    复制代码 代码如下: package com.homer.phone; import java.util.ArrayList;import java.util.HashMap; import android.app.Activity;import android.database.Cursor;import android.os.Bundle;import android.provider.ContactsContract;import android.provider.ContactsCont

  • Android SD卡上文件操作及记录日志操作实例分析

    本文实例讲述了Android SD卡上文件操作及记录日志操作的方法.分享给大家供大家参考,具体如下: // SD卡是否存在 private boolean checkSDCardStatus() { boolean SDCardStatus = false; String sDStateString = android.os.Environment.getExternalStorageState(); if (sDStateString.equals(android.os.Environment

随机推荐