Android ContentResolver 获取手机联系人

利用contentprovider和ContentResolver获取手机联系人信息 立即下载

这次教大家的是如何从获取到自己手机里的联系人

东西比较简单,我们就通过一个dome来学习一下吧

首先,我们在XML中先写一个按钮,并给它设置点击事件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.myas_026.MainActivity">

  <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="获取手机联系人"
      android:onClick="getContacts"
      />

</LinearLayout>


然后,我们去java中写主要的部分


import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    private ContentResolver cr;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //获取内容访问者
        cr = getContentResolver();
    }

    public void getContacts(View view){
        Uri uri=Uri.parse("content://com.android.contacts/raw_contacts");
        Cursor cursor=cr.query(uri,null,null,null,null);
        while (cursor.moveToNext()){
            int _id=cursor.getInt(cursor.getColumnIndex("_id"));
            String display_name=cursor.getString(cursor.getColumnIndex("display_name"));
            Log.i("test",_id+" 姓名 "+display_name);

            Uri uri1=Uri.parse("content://com.android.contacts/raw_contacts/\"+_id+\"/data");
            Cursor cursor1=cr.query(uri,null,null,null,null);
            while (cursor1.moveToNext()){
                String data1=cursor1.getString(cursor1.getColumnIndex("data1"));
                String mimetype=cursor1.getString(cursor1.getColumnIndex("mimetype"));
                if ("vnd.android.cursor.item/phone_v2".equals(mimetype)){
                    Log.i("test","   "+mimetype+"  "+data1);
                }
            }
        }
    }
}

这里面主要的就是获取内容的访问者 ContentResolver; 联系人姓名,手机号,住址等信息都只是在手机的表格中默认的一些列,所以,我们想要获取到信息,只需要查询信息就好。


最后,我们需要配置一条信息,因为获取手机联系人是需要权限的

 <!--获取手机的联系人-->
    <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>









android利用ContentResolver访问者获取手机联系人信息 主要介绍了android利用ContentResolver访问者获取手机联系人信息,非常具有实用价值,需要的朋友可以参考下。 立即下载

相关推荐

android ContentResolver的使用(获取和修改联系人信息demo)

ContentProvider和ContentResolver永远是相对的,本章主要是讲ContentResolver的使用,当然是在android系统提供ContentProvider的情况下。 ContentProvider与ContentResolver概念上的东西的就不讲了,主要讲一下ContentResolver的作用以及使用方法。 ContentResolver的作用: 1、可以通过ContentResolver来获取android内部的数据,比如联系人信息、系统的多媒体信息、短信信息等等。 2、可以获取提供了ContentProvider的应用的数据。 ContentResolver的使用方法:(参考《疯狂Android讲义第三版》446面) 1、调用Context的getContentResolver()获取ContentResolver对象。 2、根据需要调用ContentResolver的insert(),delete(),updata(),query方法操作数据库。 3、为了操作系统提供的ContentResolver,需要了解该ContentProvider的Uri,以及该ContentProvider所操作的数据列的列名,可以通过查阅Android官方文档来获取这些信息。 笔者个人意见: 1、建议新手读者在学完SqLite之后再来学习ContentResolver的内容,ContentResolver的insert(),delete(),updata(),query四个操作数据库的方法均与SQLite中的相同。 2、ContentProvider的Uri,以及该ContentProvider所操作的数据列的列名都不需要死记硬背,需要用的时候查阅一下即可,新手此处最好能自己全部写一下,对ContentResolver的使用有一个总体的了解。

[android开发]ContentResolver读取手机联系人信息

这个类是在别人的方法基础上修改的. class GetContacts implements Runnable { @Override public void run() { try { // TODO Auto-generated method stub Uri uri = ContactsContract.Contacts.CONTENT_UR

ace1573的专栏 821

从CLIP到AnomalyCLIP:零样本异常检测的跨领域进化之路

本文探讨了从CLIP到AnomalyCLIP的技术演进,重点介绍了零样本异常检测在跨领域应用中的突破。AnomalyCLIP通过对象无关提示学习和多尺度特征提取,显著提升了工业质检、医疗影像等领域的检测精度,实现了高达96.4%的金属螺母划痕检测精度和85.7%的皮肤癌敏感度。这一技术为多模态模型在异常检测中的应用开辟了新路径。

r2s3t4的博客 111

获取本地通讯录--ContentResolver

获取本地通讯录,方法记录 先说一下方法的种类,我现在所知道的有两种方法 1、第一种是比较直接但是相对比较麻烦的方法 手机内部会存有通讯录数据库,我们通过直接访问数据库,去查询所需要的资源。听起来挺方便,但是要知道,这些表很多很多,而且需要表和表之间串联查询,这中间就会有一定的复杂程度。(我连表的名字也记不住~~~) 2、第二种方法就比较符合java的习惯了,有工具类,有实现方法,有已经

Tyrant的博客 732

反激电源反馈环路设计:UC3842的FB脚与COMP脚接法对比与选型

在开关电源设计中,PWM控制器与光耦的反馈环路接法直接影响系统稳定性与动态响应。UC3842作为经典电流模式控制器,其FB脚和COMP脚分别对应内部误差放大器的输入与输出,决定了环路补偿由内部还是外部承担。FB脚接法利用内部基准和运放,设计简单、成本低,适合小功率适配器;COMP脚接法旁路内部运放,补偿网络外置,动态响应快、精度高,适合中大功率工业电源。理解两种接法的原理与差异,有助于在反激电源设计中优化环路补偿,提升负载调整率和批量一致性。

weixin_31887307的博客 316

从“盲控”到“预见”:聊聊永磁同步电机负载观测器(PMSM Load Observer)如何让控制更丝滑

本文深入探讨了永磁同步电机负载观测器(PMSM Load Observer)如何通过前馈补偿和转动惯量辨识技术实现智能抗扰控制。从传统‘盲控’到预见性调节,负载观测器显著减少转速波动和能耗,提升系统响应速度。文章详细解析了观测器算法架构、工程调参技巧及前沿发展趋势,为电机控制领域提供实用解决方案。

weixin_33737774的博客 406

android 获取通讯录并显示listview

网上找的demo  每一段都有详细注释  关键代码如下; 权限: 代码: package com.yqy.yqy_testtxl; import java.io.InputStream; import java.util.ArrayList; import android.app.Activity; import android.cont

Android翻山之路 1619

用Java实现森林冰火人游戏

g.drawString("游戏结束", CELL_SIZE * COLS / 2 - 100, CELL_SIZE * ROWS / 2);g.drawString("难度级别: " + difficultyLevel, 10, CELL_SIZE * ROWS + 60);g.drawString("生命值: " + playerHealth, 10, CELL_SIZE * ROWS + 20);setTitle("森林冰火人");

2401_82778412的博客 1734

Android软件开发之获取通讯录联系人信息(二十九)

Android软件开发之获取通讯录联系人信息 雨松MOMO原创文章如转载,请注明:转载自雨松MOMO的博客原文地址:http://blog.youkuaiyun.com/xys289187120/article/details/6730957

strliu的专栏 1992

Lede(OpenWrt)安装和双宽带叠加

LEDE是一个专为路由器和嵌入式设备设计的自由和开源的操作系统。LEDE是OpenWRT项目的一个分支项目。LEDE操作系统包括许多路由器有用的功能,如网络地址转换、防火墙、端口转发、DHCP服务器等。

我的博客 6441

AI 编程助手新玩法:用 Claude Code 一键调用国产大模型(DeepSeek/Kimi/GLM 对比)

本文深入评测了Claude Code与三大国产大模型(DeepSeek、Kimi、智谱GLM)的集成效果,详细对比了它们在代码生成质量、响应速度和特殊场景支持度等方面的差异。通过实测数据和实战技巧,帮助开发者选择最适合的AI编程助手组合,提升开发效率。

weixin_30955617的博客 487

android 真机获取短信,android利用ContentResolver访问者获取手机联系人信息

利用ContentResolver内容访问者,获取手机联系人信息我做了两种不同的做法。第一种,直接获取所有手机联系人信息,展示在ListView中。第二种,通过Butten按钮跳转到系统的手机联系人界面,单个获取手机联系人信息,展示在ListView中,结果如下:第一种:第二种:第一种:直接获取所有手机联系人信息首先需要在AndroidManifest.xml文件中添加权限:activity_ma...

weixin_42363154的博客 567

学习海康VisionMaster之BLOB分析

6):软阈值(相对):是一种动态阈值分割方法,其核心思想是 基于图像局部特性(如背景或参考区域)自适应调整阈值范围,适用于光照变化明显、背景灰度不均的场景。3:拖入位置修正功能:这个非常重要,模版匹配成功后会得到新的匹配坐标,那和创建模版时候的原点坐标会组合成一个坐标变换矩阵,通过这个矩阵,那后续的blob分析窗口则可以实现精确定位来查找目标对象。(2):设定参数:这里阈值方式是blob的核心算法,根据不同的应用场景来选择不同的阈值方式。8:高级参数:是设定blob区域的特征范围,用于筛选出来特定的区域。

yuhouxiyang的专栏 3620

android的contentResolver,contentProvider简介(附带个获取手机联系人及头像实例)

介绍 android中有个ContentProvider(内容提供者)还有个ContentResolver(内容解析者) 简单来说,contentProvider就是将自己app的数据库共享,使得其他app可以访问本app的数据,而contentResolver就是用来访问其他app的数据库的。contentProvider负责组织应用程序的数据,向其他应用程序提供数据;contentResolver则负责获取contentProvider提供的数据,修改/添加/删除/更新数据等。 如何将应用程

qq_43722933的博客 2260

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Android ContentResolver ContactsContract 获取手机联系人信息

获取手机联系人信息步骤: 1、获取 ContentResolver ContentResolver resolver = getContentResolver(); 2、resolver.query(*)查询信息 查询手机联系人的URI:ContactsContract.RawContacts.CONTENT_URI 查询手机联系人手机号的URI:ContactsContr

NoOneCode的博客 1476

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Android : 获取、添加、手机联系人-ContentResolver简单应用

Android : 获取、添加、手机联系人-ContentResolver简单应用

javaGHui的博客 1394

手机联系人 查询 添加操作

上面连接添加联系人已测试 是可以。

qq_23911165的博客 692

android获取手机联系人,安卓开发获得手机联系人

在安卓开发过程中时常会碰到获取手机联系人的需求,今天就来总结一下如何获得手机联系人以及这么做的原因。说到获取手机联系人就不得不提一下ContentProvider,安卓通过ContentProvider在不同的应用间共享数据,手机联系人数据就是通过这种方式对用户暴露的。下面开始讲解获取手机联系人的步骤,如果有误欢迎大神指导,拍砖。一 添加权限在安卓6.0及以上的系统,需要在Manifest.xml...

weixin_42361834的博客 1218

android获取点击联系人,android获取手机通讯录联系人

复制内容到剪贴板代码:/**得到手机通讯录联系人信息**/private void getPhoneContacts() {ContentResolver resolver = mContext.getContentResolver();// 获取手机联系人Cursor phoneCursor = resolver.query(Phone.CONTENT_URI,PHONES_PROJECTION...

weixin_39980129的博客 254

Android:联系人Contacts之ContentResolver query 参数详解

注:本片整理自 http://blog.youkuaiyun.com/wssiqi/article/details/8132603 1.获取联系人姓名 一个简单的例子,这个函数获取设备上所有的联系人ID和联系人NAME。   1 public void fetchAllContacts() { 2 ContentResolver contentResolver = this.ge

CallRock的博客 564

利用ContentProvider获取手机中联系人的信息

手机里面的联系人google的源码已经利用ContentProvider 共享了出来,ContentProvider的底层使用SQLite数据库实现的,所以其对数据的各种操作都是用sql实现的,只是在上层提供的是URI 可以通过两种方法创建ContentProvider : 一:创建属于你自己的ContentProvider 二:将你的数据添加到已经存在的一个ContentProvider中

zkw12358的专栏 1033

Android读取联系人信息(姓名,电话,地址,邮箱,生日等)

最近尝试了一下拉取手机通讯录中所有联系人的姓名,手机号码,地址,公司,邮箱等信息,在此做点小笔记,有需要的时候可以直接拿过来用,好了下面看看代码吧: public void testGetAllContact() throws Throwable { //获取联系人信息的Uri Uri uri = ContactsContract.Co...

wusj的博客 2521
上一篇: ContentProvider和ContentResolver
下一篇: Android 多媒体(播放应用内的音乐)
南岸北栀
博客等级 码龄10年 32粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值