android操作手机通讯录

Android实现通讯录功能 当用户需要添加新的联系人时,可以在MainActivity.java文件中定义相关的方法,例如addContact()方法,用于处理添加联系人的逻辑。然后,在getView方法中,我们通过findViewById方法找到布局文件中的TextView组件,并将相应的联系人数据设置给它们。通过以上代码,我们已经实现了Android应用中的通讯录功能,用户可以方便地管理联系人信息,并添加新的联系人。最后,在确定按钮的点击事件中,我们将用户输入的联系人信息添加到contacts集合中,并刷新列表显示。 阅读详情

手机通讯录的操作是经常被用到的,例如添加联系人,删除联系人或者取得联系人信息。类似的操作还有收藏夹的操作,下面就针对通讯录的操作来做个小例子。同样的这次也会使用到内容提供者的知识。

1.要操作通信录就要得到授权,也就是读或者写通讯录的权力。这里也需要使用Junit

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="org.lxh.contact" android:versionCode="1" android:versionName="1.0">
	<application android:icon="@drawable/icon" android:label="@string/app_name">
		<uses-library android:name="android.test.runner" />

	</application>
	<uses-sdk android:minSdkVersion="8" />
	<instrumentation android:name="android.test.InstrumentationTestRunner"
		android:targetPackage="org.lxh.contact" android:label="TestforMyApp" />
	<uses-permission android:name="android.permission.READ_CONTACTS" />
	<uses-permission android:name="android.permission.WRITE_CONTACTS" />
</manifest> 


 

2.开始取得通讯录里的内容,主要就是名称,号码,邮箱

package org.lxh.contact;

import android.content.ContentResolver;
import android.database.Cursor;
import android.net.Uri;
import android.provider.ContactsContract;
import android.test.AndroidTestCase;
import android.util.Log;


public class TestContact extends AndroidTestCase{ //junit测试类
  public void testFind() throws Throwable{
	  Uri uri=ContactsContract.Contacts.CONTENT_URI;  //通讯录的uri,这是推荐的常量
	  ContentResolver resol=this.getContext().getContentResolver();
	  Cursor cursor=resol.query(uri, null, null, null, null);
	  //取得通讯录里的内容
	  while(cursor.moveToNext()){
		  StringBuffer buf=new StringBuffer(); //实例化一个可变字符串StringBuffer
		  //取得联系人id,每个条目都有一个唯一的id(主键)
		  String contactId=cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
	      //取得联系人的显示名称
		  String name=cursor.getString(cursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
		  buf.append("id:"+contactId).append(",name:"+name);
		  //取得联系人的号码
		  Cursor phone=resol.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,  null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+" = "+contactId,null,null);
	      while(phone.moveToNext()){
	    	  String phonum=phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
	          buf.append(phonum);
	      }
	      phone.close();
	      //取得联系人的email
	      Cursor email=resol.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI ,null,ContactsContract.CommonDataKinds.Email.CONTACT_ID+" = "+contactId,null,null);
	      while(email.moveToNext()){
	    	  String mail=email.getString(email.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
	          buf.append(",mail:"+mail);
	        
	      }
	      email.close();
	      Log.i("TestContact",buf.toString());
	  }
	  cursor.close();
	 
  }
}


看这个查询过程可以知道,其实这里有2张表,一张存着id和name,一张存着号码,邮箱之类的信息。id为主键,后面的表用它作为外键。至于删除和其他操作你们可以自己看文档。我这里就不说了。

Android通讯录应用开发实践教程 本文还有配套的精品资源,点击获取 简介:在移动应用开发中,通讯录功能是基础且重要的。本文深入分析了Android通讯录应用程序的源码,涵盖内容提供者(Content Provider)、权限控制、数据获取、展示以及添加、编辑和删除联系人的实现。学习要点包括掌握Content Provider,熟悉数据查询和解析,UI交互,权限管理,数据同步和性能优化。通过这个实践教程,开发... 阅读详情

相关推荐

Android通讯录操作

关于对Android通讯录的增、删、改、查的操作代码很全面!

Android通讯录数据库介绍与基本操作(增删改查)

转自:http://www.2cto.com/kf/201402/280583.html

Gabriel的专栏 1万+

Android课程设计--便捷通讯录

用android编写的手机通讯录,能实现增,删,改,查,调用打电话,发信息的功能。课程设计,直接用android导入后改掉版本号,可以直接运行

Android通讯录的管理(联系人的增删改查)

Android中的联系人存储是通过ContentProvider实现的。因此APP对系统通讯录进行操作涉及到ContentProvider接口的使用。通讯录存储常用的数据库表使用有关接口前,首先了解一下通讯录数据库中常用的数据库表: 表名 表用途 contacts 联系人表,存储了实际的联系人姓名,头像,最后通话时间等信息。\n会对实际的联系人数据进行一定去重。 raw_

RickyXE 2万+

android 获取手机通讯录联系人信息 点击直接拨打电话

android 获取手机通讯录联系人信息,点击直接拨打电话源码 关注博客http://himici.com/

android通讯录

android通讯录功能,实现了如下功能 1.检索手机存入联系人并显示 2.右侧导航条根据拼音字母检索联系人 3.通过搜索栏实时搜索联系人 4.vCard格式导出并发送分享功能 5.检测系统通讯录是否有变化,有变化在通知栏通知,并更新联系人列表功能 博客http://blog.youkuaiyun.com/specialshoot/article/details/50651080

android 通讯录 编程,Android编程操作手机通讯录的方法示例

本文实例讲述了Android编程操作手机通讯录的方法。分享给大家供大家参考,具体如下:手机通讯录的操作是经常被用到的,例如添加联系人,删除联系人或者取得联系人信息。类似的操作还有收藏夹的操作,下面就针对通讯录的操作来做个小例子。同样的这次也会使用到内容提供者的知识。1. 要操作通信录就要得到授权,也就是读或者写通讯录的权力。这里也需要使用Junitpackage="org.lxh.contact"...

weixin_34318945的博客 692

基于Android的手机通讯录设计书和源代码

基于Android的手机通讯录设计书和源代码 基于Android的手机通讯录设计书和源代码

iphone导出通讯录到安卓_安卓新旧手机互传便签数据怎么操作?手机便签怎么导出到另一个手机...

安卓系统的手机占据目前手机市场的一大份额,伴随着科技的不断发展,每一个品牌的安卓手机都在逐步的更新迭代;用惯安卓手机的人在更换手机时可能还会考虑更换安卓系统的手机,方便手机上内容的互传及导出。当一部旧手机更换成新手机后,大家比较担心的就是手机中的重要内容是否支持互传;在这里小编告诉大家,如果更换手机时,新旧手机为同一品牌的手机,可以借助手机的云服务功能来同步安卓手机中存储的图片、视频、便...

weixin_39629075的博客 347

Informer复现 -- 完整模型

有了数据和核心的ProbAttention,接下来就可以复现完整的Informer(图1)了。图1:Informer模型结构[1]如果对图1还不太熟悉的同学,可以参考图2。由图2可知,informer与Transformer之间的差异并不大。主要区别是ProbAttention和可能的encoder最后一层的conv(源代码中用来distil)。图2:参考Transformer画的Informer模型结构。

AI_daily的博客 3491

将Python爬取的数据导入钉钉多维表

摘要:本文介绍将Python爬取的数据导入钉钉多维表的完整解决方案。首先通过requests库爬取数据并解析为结构化格式,然后使用钉钉开放平台API对接多维表。关键步骤包括获取app_key、app_secret等凭证,通过OAuth2获取access_token,以及批量写入记录。文章详细说明了参数获取位置、字段类型匹配、权限配置等注意事项,并提供了错误处理建议和性能优化方法。适用于需要将网络数据同步到钉钉多维表的开发场景。

IT深耕十余载,大道之简 2131

android对手机通讯录的操作

转自: http://blog.youkuaiyun.com/xiazdong/article/details/7713419 虽然很基础,但是很久没有操作系统的数据库难免忘记,今天有幸项目需要重新找了下资料,找到这篇很不错的博客,顺便把我的问题解决了,固总结标识下。 写的真的很棒,感谢各位博主的无私奉献。 URI 对raw_contacts表添加、删除、更新

mapgoo的博客 835

当知识图谱遇见多模态:突破文本界限的智能认知革命

本文探讨了知识图谱与多模态技术的融合,揭示了其在医疗诊断、文化保护等领域的革命性应用。通过图神经网络、对比学习框架和跨模态注意力机制等技术,实现了文本、图像和音频数据的智能关联与认知。文章还分享了在Neo4j等图数据库中的实践案例和优化策略,为构建下一代智能认知系统提供了技术参考。

weixin_29197835的博客 464

操作Android 手机通讯录数据库

// 根据ID获得联系人信息实体  private static EnContactBackUp getEnContactBackUp(String id) {   ContentResolver resolver = acApplication.getInstance()     .getContentResolver();   EnContactBackUp contact = new

PonderForever的专栏 2369

Codesys电子凸轮功能块MC_CamIn的masteroffset和slaveoffset参数的使用

问题1:在Codesys使用作轴电子凸轮时,MC_CamTableSelect的参数设置为MasterAbsolute=1,SlaveAbsolute=1,此设置为绝得模式, 此时主从轴当前位置都不为零时,此时Masteroffset=0、slaveOffset=0,凸轮启时出现突变,实轴无法启动。问题分析:在觉得模式下,主轴位置和从轴为是对应凸轮表的相位的,Masteroffset=0、slaveOffset=0,启动点时在主轴位置=0,从轴位置=0的点启动,此时主轴当前位置不为零则主从轴位置发生突变,

weixin_43587371的博客 1801

室内温度控制仿真(Simulink+PLC)

本篇博客将会带领大家解读Simulink自带的仿真模型(Thermal Model of a House),之后再讨论PLC控制系统控制环境温度的一些经验方法

RXXW_Dor的博客 3462

android手机应用程序操作手机通讯录的联系人

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34413357的博客 147

Allegro如何去掉PCB内层未使用的过孔孔环?

在用Allegro进行PCB设计过程中,遇到铺铜铜箔被焊盘大量割断,导致铺铜不完整,这样就会导致铺铜过电流太小,影响板的性能,严重的会导致板工作不稳定,甚至不工作。解决办法:是去掉内层未使用的过孔孔环,增大过铜箔面积。

bhxc809751502的博客 2571

android备份手机号码,简单四步 完成Android手机通讯录"云备份"操作

近两年,智能手机开始普及,一些发烧友甚至左手一个Android右手一个iPhone,兜里可能还有一个能砸核桃的诺基亚(塞班)。手机多了,多年累积的电话号码不能互通就成了“老大难”问题,去手机店导数据要花上几十上百元,让人心疼。其实,通过智能手机上的一些软件进行简单设置后,几台手机的通讯录数据能够互相“串门”了。智能手机里装的安全软件不少已经具备了“云备份”功能,下面鉴定哥就选择三款常见的手机安全软...

weixin_42339759的博客 3275

Open3D 可视化(1)——简单可视化【2026最新版】

简单可视化,博客长期更新,本文最新更新时间为:2026年5月10日。

点云侠的博客 5685

XCP详解「3.1·ASAP2新建A2L文件」

后面是ASAP2新建A2L的操作步骤,如果是APE中新建的A2L就无需以下操作,APE只需要导入现成的A2L即可。退出点击保存时会提示保存A2L文件,是因为前面导出的是1.70版本,工程最低1.71,可以另外起个名字即可。导入elf文件,elf路径建议直接索引编译生成的Debug下的,防止编译后忘记更新。导出V1.70格式A2L文件,APE17支持V1.70。通过ASAP2生成需要A2L文件更常用些。同一个信号可以创建不同属性量。ASAP2中新建A2L文件。设置标定信号数量最大值。XCP详解「总目录」

光明磊学习&积累的地方 3059

iphone导出通讯录到安卓_怎么将安卓手机便签导出苹果手机中?同步手机便签数据怎么操作?...

现在的手机品牌主要分为两大类,一类是安卓(Android)手机,一类是苹果(iOS)手机;鉴于手机更新换代的频率比较快,一些用户在用腻了安卓手机时,就想换一部苹果手机,这个时候让人比较苦恼的就是怎么将安卓手机便签导出到苹果手机中?之所以大家会有这样的苦恼是因为安卓手机和苹果手机分属于不同的系统,对于手机上的通讯录、照片等文件,大家可以借助QQ通讯录、百度网盘等工具来同步;可对于同步安卓手机便签就有...

weixin_39972519的博客 139

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

安卓监听方法耗时操作_手机丢失恢复通讯录的最新恢复方法!

直到今天我才知道,手机丢了号码没了,根本不需要将QQ签名、微信朋友圈状态以及微博状态全部调整为“亲们,手机丢了,号码都不见了,麻烦看到的都发一条信息给我,我好存,本人号码未变”,或者打开QQ逐个投递“寻号启事”,只需要一分钟就可以全部找回!1.微信客户端备份:打开微信主界面—点开右下角“我”—选择通用—点击功能—选择通讯录安全助手—打开定时提醒备份—进入安全助手—选择备份—点击确定—输入登录密码—...

weixin_35651471的博客 221

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

我的MSF之Android木马渗透的学习笔记

使用kali制作Android木马并进行通讯录渗透的学习笔记

yuan_boss的博客 6958

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

上一篇: SQLite的事务处理和listview的使用
下一篇: ibatis+spring存储blob数据
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值