获取手机的联系人

Android 获取手机应用数据 联系人,图片,拍照等 Android、ContentResolver、 Intent、权限获取 阅读详情

Android四大基本组件介绍与生命周期:http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html

android四大组件--ContentProvider详解:http://www.2cto.com/kf/201404/296974.html

获取系统联系人MainActivity.java

package com.zking.administrator.g160628_android26_getcontacts;

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=Uri.parse("content://com.android.contacts/raw_contacts");
        Cursor cursor=cr.query(uri,null,null,null,null);
        //拿两个数据,一个是ID一个是姓名(获得联系人的id,姓名),建议:自己创建数据库的表里边的字段主键用下滑线ID(_id)
        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);
            //如果手机联系人多的话,会比较卡或出现应用程序无响应,建议写到子线程或开一个服务程

            //根据联系人的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()){
                //Couldn't read row 0,col -1 from CurorWindow(找不到-1列),如果报这个错的话,你就要知道列名写错了
                //int mimetype_id=cursorData.getInt(cursorData.getColumnIndex("mimetype_id"));这里拿的不是int类型,也不是拿ID的值
                //直接拿的是mimetype里的mimetype的字段
                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","----data1----"+data1+"-----mimetype-----"+mimetype);
                }
            }
        }
    }
}
activtiy_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.administrator.g160628_android26_getcontacts.MainActivity">

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="获取手机的联系人"
        android:onClick="getContacts"/>
</LinearLayout>
AndroidManifest.xml
<!--获取手机的联系人的权限-->
    <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>



使用内容提供器读取手机联系人信息 因为读取联系人信息属于危险权限,所以此程序我用到了Android的动态申请权限,如果你对动态申请权限还不了解,请看我的另一篇博客,链接地址如下: Android动态申请权限 现在我们来分析一下怎么使用Android的内容提供器读取手机联系人信息,首先你要知道联系人信息在哪?怎么读取? 其实我们的联系人信息都保存在Android内置数据库的一张表上,我们只要读取对应的那张数据表上的信息就可以了,读取... 阅读详情

相关推荐

ContentProvider之获取手机联系人

手机的通讯录联系人全部都存在系统的数据库中,如果须要获得通讯里联系人的信息就须要访问系统的数据库,才能将信息拿出来。 1)Phone.CONTENT_URI,获取联系人的时候需要去这个url中去找数据 。它所指向的其实是“content:// com.android.contacts/data/phones”。这个url 对应着手机系统的contacts表 和   raw_contact

d_shadow的博客 936

Android中获取手机中的联系人信息

Android获取手机中的联系人信息

hong_world的博客 1万+

通过ContentProvider实现获取手机联系人

以下是我用ContentProvider得到手机联系人的两种方式,一种是在新建的module中使用ListView遍历,另一种是通过跳转到手机系统的通讯录 ! 这是通过ListView遍历 跳转到手机系统的通讯录获取手机通讯录需要在清单文件中写权限 <!--读取联系人的权限--> <uses-permission android:name="android.permission.REA

qq_34078119的博客 1815

获取手机联系人的两种方法

权限 :   import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.ContentResolver; import android.database.Cursor; import android.net.Uri; impor

xiaoxinxin的博客 1万+

Android进阶之路 - 获取手机联系人

目录 ContactInfo - 用于接收数据的实体类 ContactUtil - 获取手机联系人的姓名、电话 manifests - 添加权限 MainActivity - 使用 ContactInfo - 用于接收数据的实体类 package nkwl.com.contentdemo; public class ContactInfo { public String name; ...

Android、前端、小程序、后端 3030

Android 获取所有手机联系人名单

在最近的开发中,有需要要求查询所有手机联系人的名单,然后可以拨打电话功能 首选来实现查询手机联系人的功能 定义手机联系人实体类 public class PhoneContact { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } pub

安卓兼职framework和app工程师的博客 2143

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

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

weixin_42361834的博客 1218

Android笔记: 获取手机联系人列表

下面直接贴代码 1.先写一个实体类,来放名字和号码 public class PhoneDto { private String name; //联系人姓名 private String telPhone; //电话号码 public String getName() { return name; } publ...

知道的越多,不知道的越多。 1210

Android Studio 获取手机联系人项目

Android Studio 获取手机联系人项目 【下载地址】AndroidStudio获取手机联系人项目 本项目是一个基于 Android Studio 开发的示例应用,主要功能是获取手机联系人信息,并支持对联系人进行发短信、打电话、增加、删除和修改操作。通过这个项目,你可以学习如何在 Android 应用中实现联系人...

gitblog_09807的博客 725

读取联系人

一个简易的联系人通讯集制作案例,让你学会内容提供者与Uri的使用原理。

Mac用户必看:Parallels Desktop 18.1.1最新破解版安装与优化全攻略(附资源)

本文为Mac用户提供Parallels Desktop 18.1.1的详细安装与优化指南,涵盖虚拟化技术选型、专业级配置流程及性能调优技巧。重点解析Parallels Desktop在图形加速、系统资源调度方面的核心优势,并分享生产力增强技巧与典型应用场景实战方案,帮助用户最大化利用这一高效虚拟化工具。

weixin_29240343的博客 819

获取ContentProvider来获取手机所有的联系人及联系人信息

用ContentProvider内容提供者的技术来获取手机上的联系人,比如开发软件时,如果您的好友也是软件用户,则可以通过手机联系人直接添加好友 下面是实现步骤 这里就模仿一下获得 首先在你的界面打一个按钮来获得 <Button android:layout_width="wrap_content" android:layout_height="wrap_

BIHUA0918的博客 1021

UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount()【已解决】

UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount()【已解决】

围炉夜敲的博客 1万+

Android ContentResolver 获取手机联系人

这次教大家的是如何从获取到自己手机里的联系人 东西比较简单,我们就通过一个dome来学习一下吧 首先,我们在XML中先写一个按钮,并给它设置点击事件: [html] view plain copy xml version="1.0" encoding="utf-8"?>   LinearLayout       xmlns:and

Calabash_Brothers的博客 434

揭秘Synopsys EDA中的AI黑科技:DSO.ai如何改变传统芯片设计流程

本文深入探讨了Synopsys EDA中的AI黑科技DSO.ai如何革新传统芯片设计流程。通过数据驱动的方法论、功耗优化革命和时序收敛智能加速,DSO.ai显著提升了设计效率和质量,实现了从经验驱动到AI驱动的范式转变。文章还提供了实战指南,帮助团队跨越AI EDA的实施鸿沟。

weixin_29296241的博客 525

STM32踩坑--NoST-LINK detected

这里出现的NoST-LINK detected是没有扫描到端口 在我使用一段Fly-MCU后,有一天突然发现出现如上错误,再检查的过程中检查以下几点 1.STM32 魔术棒的设置 1.1Debug设置 1.2 utilities 设置没有问题,与原来一样又看了下端口——在设备管理器中;也没有问题 ...

qq_53002477的博客 2万+

获取手机联系人

/**获取库Phon表字段**/ private static final String[] PHONES_PROJECTION = new String[]{ Phone.DISPLAY_NAME, Phone.NUMBER}; /**联系人显示名称**/ private static final int PHONES_DISPLAY_NAME_IN...

abvj64979的博客 157

71、机器人与机器人控制器技术解析

本文深入解析了机器人控制器的通信接口、传感器数据采集与处理以及抓手技术三大核心技术。详细介绍了数字I/O、串行接口、总线系统和以太网等通信方式,探讨了各类传感器在焊接、装配、质量检测等场景中的应用,并阐述了手眼校准与路径校正的关键方法。同时,文章还分析了不同类型抓手的特点及选型设计原则,展示了机器人在现代工业自动化中的高效性与灵活性。通过实际编程示例与流程图,全面呈现了机器人系统的集成与控制逻辑。

gin88的博客 275

android开发——获取手机联系人

android中获取手机联系人是通过 ContentResolver类实现的,ContentResolver是用来提供android开发者对系统应用及其他应用的数据库进行解析的,通过特定的Uri访问相应的数据库。进而获取系统应用或者其他应用的应用数据,获取android手机联系人的URL是Phone.CONTENT_URI,Phone类提供了很多获取手机联系人的数据库的URI,Phone.CONT

xiongpandamao的专栏 685

基于物联网的门禁与考勤系统(阿里云)_81

本课题设计的基于物联网的门禁与考勤管理系统,结合现代信息技术,利用指纹识别、射频卡、密码输入和远程控制等多种开锁方式,提升门禁系统的安全性和灵活性;同时,通过物联网平台进行数据上传和远程管理,极大提高了管理效率。通过智能化的考勤功能,系统可以实时记录员工的出入情况,并通过云平台进行远程查询和管理,推动门禁与考勤管理的数字化、智能化和高效化。

1万+

SAP 系统和银行系统通过 SM2 加密算法进行集成

SM2 是基于椭圆曲线离散对数问题(ECDLP)的一种公钥密码算法。椭圆曲线加密的核心原理,是利用了一个数学难题:在椭圆曲线群上,已知曲线上两点的运算结果,逆向推导出这两个点的具体信息是非常困难的。这样的复杂度使得基于椭圆曲线的密码体制比传统的 RSA 更加难以破解。在 SM2 加密中,公钥和私钥的生成与传统的椭圆曲线加密类似。选择一个椭圆曲线和一个基点 P。使用私钥 d,计算公钥 P’ = d * P。私钥 d 保密,而公钥 P’ 可公开分发,用于加密数据。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1211

Android 获取手机联系人

/** * 获取手机联系人 */ public static List> getAllContactInfo(Context context) { SystemClock.sleep(3000); ArrayList> list = new ArrayList>(); // 1.获取内容解析者 ContentResolver resolver = context.g

xizhilang201的专栏 2932

【StarRocks】-- DATETIME 与 TIMESTAMP 区别详解

本文详细解析了StarRocks中DATETIME/DATETIMEV2与TIMESTAMP的区别及使用场景。DATETIME系列存储人类可读时间,不携带时区;TIMESTAMP实际指Unix时间戳,建议用BIGINT存储。关键差异包括:精度选择(DATETIMEV2支持微秒级)、时区处理(仅函数计算时影响)、存储方式等。针对不同场景提供选型建议:单时区展示用DATETIMEV2,跨时区计算用BIGINT存储Epoch。特别强调与MySQL迁移时的注意事项,并给出常见问题解决方案和最佳实践清单,包括统一入口

欢迎来到我的博客,一起探索代码里的世界! 496

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

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

weixin_39980129的博客 254

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

上一篇: ContentProvider内容提供者和ContentResolver内容访问者
下一篇: Android多媒体(音乐播放器)
XHui_Lin
博客等级 码龄10年 27粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值