26.获取系统联系人ContentProvider

Android开发之contentprovider获取手机所有联系人(姓名、号码、邮箱) 1、得到 ContentResolver 。 ContentResolver resolver = getContentResolver(); 2、拿到手机联系人信息(姓名、号码、邮箱)URL。 获取手机联系人:ContactsContract.RawContacts.CONTENT_URI  获取手机联系人手机号:ContactsContract.Common 阅读详情
1.实现获取联系人关键代码:
    <1>content://com.android.contacts/raw_contacts(获得联系人的id,姓名)

    <2>content://com.android.contacts/raw_contacts/"+id+"/data(根据联系人的id获得联系人的信息)


2.具体代码如下所示

activity_main.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"
    tools:context="com.zking.android26_getcontacts.MainActivity">

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

</LinearLayout>
MainActivity.java

package com.zking.android26_getcontacts;

import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
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()){
                 //获得联系人的id,姓名
                 int _id=cursor.getInt(cursor.getColumnIndex("_id"));//拿列 联系人id+联系人姓名
                 String display_name=cursor.getString(cursor.getColumnIndex("display_name"));
                 Log.i("test",_id+" "+display_name);
                 //拿联系人属于手机的隐私文件,所以需要加权限

                 //根据联系人的id获得联系人的信息
                 Uri uriData=Uri.parse("content://com.android.contacts/raw_contacts/"+_id+"/data");
                 Cursor cursorData=cr.query(uriData,null,null,null,null);
                 while(cursorData.moveToNext()){
                      String mimetype=cursorData.getString(cursorData.getColumnIndex("mimetype"));
                      String data1=cursorData.getString(cursorData.getColumnIndex("data1"));
                      if("vnd.android.cursor.item/phone_v2".equals(mimetype)){
                           Log.i("test","     "+mimetype+" "+data1);
                      }
                 }
            }
    }

}
AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.zking.android26_getcontacts">

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

    <application android:allowBackup="true" android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true" android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>


3.效果图:






逆向解析喜马拉雅新版xm-sign算法:从dws.1.6.8.js到签名生成 本文详细解析了喜马拉雅新版xm-sign算法的逆向破解方法。通过定位核心JS文件dws.1.6.8.js,构建本地Node.js模拟执行环境,并解密关键参数cid与appKey,最终实现签名算法的本地化稳定生成,为数据采集提供可靠解决方案。 阅读详情

相关推荐

文档多模态识别工具对比:MinerU、PaddleOCR、Marker

本文对比了三款文档多模态识别工具:MinerU、PaddleOCR和Marker。MinerU专注于中文文档的端到端解析,支持复杂元素提取和结构化输出,适合中文论文和教材解析。PaddleOCR是通用OCR工具包,支持多语言和全流程任务,适用于发票、车牌等图像OCR。Marker则注重多语言支持和轻量化部署,适合英文论文和技术文档的快速转换。三者在核心技术、中文优化、表格处理、输出格式、部署复杂度和适用语言等方面各有优劣。选型建议根据具体需求:MinerU适合高精度中文解析,PaddleOCR适合定制化OC

朴拙科技的博客 4744

64.内容提供者ContentProvider--获取系统的联系人,插入联系人

系统的联系人在data/data文件夹的com.android.providers.contacts包的contacts2.db文件中,了解系统的联系人需要3个数据库 raw_contacts表:每一个联系人都有一条数据,contact_id:联系人id和display_name:联系人的名字,例如下面有3个联系人,姓名分别在下面圈中所示 data表:存放联系人的详细信息,每一行存放一个联...

augfun的博客 2053

ESP32S3开发实战:从Vscode+IDF环境配置到OpenOCD单步调试全流程

本文详细介绍了ESP32S3开发环境的完整搭建流程,重点讲解如何在Vscode中配置ESP-IDF开发框架,并利用OpenOCD工具实现硬件单步调试。内容涵盖从环境准备、工程创建、代码烧录到高级调试技巧的全方位实战指南,旨在帮助开发者快速掌握ESP32S3的高效开发与调试方法。

weixin_29168813的博客 208

【Android】--操作联系人的ContentProvider

1.main.xml代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_heigh...

fei飞来了 270

MATLAB小白也能搞定!BCT脑网络分析工具箱安装与入门指南

本文为零基础用户提供了一份详尽的BCT脑网络分析工具箱安装与入门指南。从MATLAB环境配置、BCT工具箱下载与路径添加,到连接矩阵构建、节点度与聚类系数等基础指标计算,手把手带领神经科学研究者跨越编程门槛,快速掌握脑影像数据分析的核心流程。

threejs5artist的博客 1090

目标检测 RT-DETR(2023)详细解读

在使用了这个技巧后,显然训练过程中,类别的标签不再是此前的0和1离散值,而是0~1的连续值。关于 Query Selection(查询向量选择),大家应该并不陌生,这个方法可谓在DETR领域大杀四方,如DAB-DETR对查询向量进行重构理解,将其解释为Anchor,DN-DETR通过查询降噪来应对匈牙利匹配的二义性所导致的训练时间长的问题,DINO提出从Encoder中选择Top-k特征进行学习等一系列方法,这都无疑向我们证明,查询向量很重要,选择好的Query能够让我们事半功倍。在RT-DETR中,

qq_51352130的博客 5869

读取系统联系人

读取联系人重要的权限: //如果需要添加联系人,权限是write //代码 package com.example.readcontacts; import android.net.Uri; import android.os.Bundle; import android.app.Activity; import android.content.ContentResolver;

lizhanqihd的博客 538

AI驱动的网络安全运维:智能化时代的安全保障

本项目旨在使用Python和AI技术构建一个智能化的网络安全运维系统,能够实时监测网络流量,检测潜在的安全威胁,并自动采取应对措施,从而提升网络安全管理的效率和准确性。具体内容包括:环境配置与依赖安装数据采集与预处理机器学习模型构建与训练实时威胁检测与响应实际应用案例通过本文的介绍,我们展示了如何使用Python和AI技术构建一个智能化的网络安全运维系统。

Echo_Wish 1290

Android学习技术馆之:Android - 内容提供者

目前,Android - 内容提供者普遍被大众认识和使用,当我们处于新时代背景的浪潮下,就必须依靠自己的努力来为技术的再一次革新做出贡献,哪怕辛苦也是值得的,大家一起努力吧!!! 内容提供者组件通过请求从一个应用程序向其他的应用程序提供数据。这些请求由类 ContentResolver 的方法来处理。内容提供者可以使用不同的方式来存储数据。数据可以被存放在数据库,文件,甚至是网络。 有时候...

跑得动就不要歇着 465

PCIe(二) —— 配置空间

好了,这一篇我们把配置空间的结构,分配和访问,都大概总结了一遍,并且还介绍了它们的头部字段和这些字段的意义,包括BAR和消息路由的原理。之后,如果有时间,我们会继续来探索PCIe的数据报文的结构和传输等等。

叫好与叫座虽然不是对立面,但想在同一个作品中达到双重效果很难。 1767

PDF格式分析(一)简介

概述 PDF文件是一种编程形式的文档格式,它所有显示的内容,都是通过相应的操作符进行绘制的。 PDF基本显示单元包括:文字,图片,矢量图,图片 PDF扩展单元包括:水印,电子署名,注释,表单,多媒体,3D PDF动作单元:书签,超链接(初学者可以简单这么理解,对于研究比较深入的人员来说,拥有动作的单元有很多个,包括电子署名,多媒体,3D等等) 优势 一致性: 在所有可以打开PDF的机...

steve_cui的博客 2万+

获取系统联系人

转载注明出处:http://blog.csdn.net/u011368551/article/details/39896477 第一步:在配置文件里加入权限,因为是要读取联系人的。 [html] view plain copy uses-permission android:name="android.permission.READ_CONTACTS

GaoQian_zz的博客 489

基于FPGA的NCO实现

NCO实现原理 数字振荡器 输出频率,相位可控的正弦波,精度高,稳定性高,替代VCO,用起来方便也易于操作。 实现方式: 直接调用fpga里面的ip核,以下是IP核的配置方法: 接下来选择输出为单路还是多路: 最后生成ip核时需要注意的事项: 生成时会需要漫长的等待,因此需要如下操作: 最后成功生成: 实现代码: input clk ; input rst_n ; output [13:0]fsin_i ; wire [13:.

m0_46644103的博客 4581

Android ContentProvider(获取手机联系人)

代码实现: 权限: uses-permission android:name="android.permission.READ_CONTACTS">uses-permission> 代码实现: 1、联系人 content://com.android.contacts/raw_contacts(获得联系人的id,姓名) content://com.android.contacts

Li_Driver的博客 724

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

用ContentProvider向系统增加联系人

发现对系统的联系人进行操作的api很乱,感觉逻辑有点不清楚...... 主要用到这4个类: android.provider.ContactsContract.CommonDataKinds.Email;android.provider.ContactsContract.CommonDataKinds.Phone;android.provider.ContactsContract.Common

月轩的专栏 343

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

四大基本组件之ContentProvider联系人

1、首先给大家看看最重要的两条网址 content://com.android.contacts/raw_contacts(获得联系人的id,姓名) content://com.android.contacts/raw_contacts/"+id+"/data(根据联系人的id获得联系人的信息) 下面是代码演示: package com.example.my_android

GD_Tiny的博客 477

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Android——contentProvider内容提供者2,获取系统的内容

Android——contentProvider内容提供者2,获取系统的内容

qq_37879101的博客 388

Android中实现ContentResolver对系统中所有联系人的访问

一、实现方法 思路: 朝着实验要求和目的去想,要想访问系统中的联系人,可以利用 ContentResolver 类来访问,使用ContentResolver 类可以访问别的应用程序通过 ContentProvider 提供的数据,这里可以用 Android 系统提供的标准的 ContentProvider 来对手机联系人进行访问。 还有要想实现长按联系人姓名会弹出菜单显示,在Android的菜单...

weixin_43624626的博客 2873

Android开发之读写联系人

读写联系人需要用到android的ContentProvider 同时需要读和写联系人的权限 需要使用到联系人数据库中的 * raw_contacts表: * contact_id:联系人id * data表:联系人的具体信息,一个信息占一行 * data1:信息的具体内容 * raw_contact_id:联系人id,描述信息属于哪个联系人 * mimetype_id:描述信息...

diaolapei9880的博客 234

(4.1.26.2)ContentProvider往通讯录添加联系人和获取联系人

在Android中,可以使用ContentResolver对通信录中的数据进行添加、删除、修改和查询操作。 在对联系人进行操作时需加入以下两个权限   content://com.android.contacts/contacts 操作的数据是联系人信息Uri content://com.android.contacts/data/phones 联系人电话Uri c

JAVA成长之路 771

Android中联系人以及ContactsContract类

1.加入读写权限 (1).  (2).  联系人信息Uri: content://com.android.contacts/contacts 联系人电话Uri: content://com.android.contacts/data/phones 联系人Email Uri: content://com.android.contacts/data/emails (推荐)

supercube2的专栏 5494

获取手机的联系人

Android四大基本组件介绍与生命周期:http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html android四大组件--ContentProvider详解:http://www.2cto.com/kf/201404/296974.html 获取系统联系人MainActivity.java packag

XHui_Lin的博客 339

Android26-ContentProvider

1.先写一个按钮 2.第二步获取 ContentResolver //获取内容访问者 ContentResolver cr=getContentResolver(); 3.写一个方法 public void getContacts(View view){     Uri uri=Uri.parse("content://com.android.contacts/raw_contact

qq_38946358的博客 247

Android:使用ContentProvider读取、添加联系人

1 package com.example.contentproviderdome1; 2 3 import android.os.Bundle; 4 import android.provider.ContactsContract; 5 import android.provider.ContactsContract.CommonDataKinds.Email; 6 ...

weixin_30477797的博客 232

Android学习笔记 四七 Content Provider初谈和Android联系人信息

Android学习笔记 四七 Content Provider初谈和Android联系人信息

skdhfdfc的博客 711

联系人结构

Content Provider 在数据处理中,Android通常使用Content Provider的方式。Content Provider使用Uri实例作为句柄的数据封装的,很方便地访问地进行数据的增、删、改、查的操作。Android并不提供所有应用共享的数据存储,采用content Provider,提供简单便捷的接口来保持和获取数据,也可以实现跨应用的数据访问。简单地说,Androi...

jameskaron的专栏 247
上一篇: 25.ContentProvider自定义内容提供者与ContentResolver内容访问者
下一篇: 27.多媒体(音乐播放器)
_北冥有鱼_
博客等级 码龄10年 41粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值