[android] 保存联系人到系统通讯录
对应着读联系人,把数据写进去,市场上的社交类应用经常会有这样的功能
- 向raw_contacts表中添加一个id
- 向data表里面添加对应的数据
获取ContentResolver对象,通过getContentResolver()方法
调用ContentResolver对象的query()方法,查询raw_contacts表,得到Cursor对象
调用Cursor对象的moveToLast()方法,游标移动到最后一行
获取到最后一行记录的contact_id,新的id就是它加上1
调用ContentResolver对象的insert(uri,values)方法,参数:values是ContentValues对象把新的id put()进去
获取到ContentResolver对象后调用insert(uri,values)方法,参数:Uri应该是data表的Uri规则,ContentValues对象的,put(key,value),”raw_contact_id”=>上面的id,”mimetype”=>”vnd.android.cursor.item/phone_v2”,”data1”=>”电话号码”
然后添加姓名,和上面一样只不过在ContentValues对象里面,
Put “mimietype”=>”vnd.android.cursor.item/name”键值对
public void writeContacts(View v){
ContentResolver resolver=getContentResolver();
Uri uri=Uri.parse("content://com.android.contacts/raw_contacts");
Uri dataUri=Uri.parse("content://com.android.contacts/data");
//查出最后一个id
Cursor cursor=resolver.query(uri, new String[]{"_id"}, null, null, null);
cursor.moveToLast();
int lastId=cursor.getInt(0);
int newId=lastId+1;
//插入一个联系人id
ContentValues values=new ContentValues();
values.put("contact_id", newId);
resolver.insert(uri, values);
//插入电话数据
ContentValues dataValues=new ContentValues();
dataValues.put("raw_contact_id", newId);
dataValues.put("mimetype", "vnd.android.cursor.item/phone_v2");
dataValues.put("data1", "110");
resolver.insert(dataUri, dataValues);
//插入姓名数据
ContentValues data1Values=new ContentValues();
data1Values.put("raw_contact_id", newId);
data1Values.put("mimetype", "vnd.android.cursor.item/name");
data1Values.put("data1", "police1");
resolver.insert(dataUri, data1Values);
Toast.makeText(this, "写联系人成功", 0).show();
}
[android] 保存联系人到系统通讯录的更多相关文章
- 如何保存联系人到系统通讯录(android)
1 效果演示: 2 代码演示:
- Android 保存联系人,包括部门\职位\传真\地址\照片
private void toSaveContactInfo() { ContentValues values = new ContentValues(); // 首先向RawContacts.CON ...
- iOS开发--系统通讯录的访问与添加联系人
公司项目有访问通讯录的需求,所以开始了探索之路.从开始的一无所知,到知识的渐渐清晰.这一切要感谢广大无私分享的 “coder”,注:我是尊称的语气! 苹果提供了访问系统通讯录的框架,以便开发者对系统通 ...
- Android项目--获取系统通讯录列表
----------------- 通讯录列表 ----------------- 按常理来说,获取系统通讯录列表,无非就是将通讯录的数据库打开获取数据,适配,添加即可. Cursor cursor; ...
- Android项目--浅析系统通讯录中的那些方法
系统通讯录,以前的版本虽然过时了,不过有些东西还是可以用. 1.开启系统联系人添加 /** 添加联系人 */ Intent intent = new Intent(Intent.ACTION_INSE ...
- android读取通讯录和使用系统通讯录
第一步:注册权限 <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <us ...
- 向Android模拟器中批量导入通讯录联系人
使用adb命令向Android模拟器中批量导入通讯录联系人的方法: 使用adb提供的命令, 可以非常方便地从PC中将通讯录批量导入android模拟器中. 首先要先准备好固定格式的vcf文件, 该文件 ...
- 【转】Android 增,删,改,查 通讯录中的联系人
一.权限 操作通讯录必须在AndroidManifest.xml中先添加2个权限, <uses-permission android:name="android.permission. ...
- Android 增,删,改,查 通讯录中的联系人
一.权限 操作通讯录必须在AndroidManifest.xml中先添加2个权限, <uses-permission android:name="android.permission. ...
随机推荐
- 133. leetcode-Clone Graph
拷贝图,可以一边遍历一边拷贝 DFS class Solution { public: Node* cloneGraph(Node* node) { unordered_map<int, Nod ...
- DB2日常维护常用命令
1.检查是否有僵尸进程 ps -emo THREAD | grep -i Z | grep -i 实例名 2.处理死锁 --第一步:查看所有死锁 db2 get snapshot for lock ...
- 《HTTP权威指南》4-连接管理
TCP连接 TCP/IP是全球计算机及网络设备都在使用的一种常见的分组交换网络分层协议集客户端应用程序可以打开一条TCP/IP连接.连接到可能运行在世界任何地方的服务器应用程序 TCP的可靠数据管道 ...
- Openvswitch手册(9): Flow
这一节我们将flow table flow table主要由ovs-ofctl命令操作 ovs-ofctl可以走和openflow controller一样的协议: ssl:ip[:port]: Th ...
- 一次 Java 内存泄漏的排查
由来 前些日子小组内安排值班,轮流看顾我们的服务,主要做一些报警邮件处理.Bug 排查.运营 issue 处理的事.工作日还好,无论干什么都要上班的,若是轮到周末,那这一天算是毁了. 不知道是公司网络 ...
- 简单 v.s. 基础
无论做平面设计还是做摄影创作,其基础都是一些比较粗浅的看似毫无用处的简单技能.例如画直线.拍挂在墙上的电视机,不一而足. 同样的现象还能在web的前端设计中看到.一堆类似小孩学绘画的标签,几个可以更改 ...
- 吴恩达机器学习笔记35-诊断偏差和方差(Diagnosing Bias vs. Variance)
当你运行一个学习算法时,如果这个算法的表现不理想,那么多半是出现两种情况:要么是偏差比较大,要么是方差比较大.换句话说,出现的情况要么是欠拟合,要么是过拟合问题.那么这两种情况,哪个和偏差有关,哪个和 ...
- mysql连接失败HikariPool错误
1. mysql连接失败HikariPool错误 1.1. 异常 com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during ...
- 阿里启动新项目:Nacos,比 Eureka 更强!
什么是 Nacos? Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现.配置管理和服务管理平台. Nacos 致力于帮助您发现.配置和管理微服务.Nacos 提 ...
- mysql 开发基础系列20 事务控制和锁定语句(上)
一.概述 在mysql 里不同存储引擎有不同的锁,默认情况下,表锁和行锁都是自动获得的,不需要额外的命令, 有的情况下,用户需要明确地进行锁表或者进行事务的控制,以便确保整个事务的完整性.这样就需要使 ...