android向联系人中添加头像以及获得电话记录
Java代码
<pre name="code" class="java">ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, "DISPLAY_NAME = '" + "gm" + "'", null,
null);
if (cursor.moveToFirst()) {
//获得联系人的id
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
//修改联系人的头像
Bitmap sourceBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.img2);
final ByteArrayOutputStream os = new ByteArrayOutputStream();
// 将Bitmap压缩成PNG编码,质量为100%存储
sourceBitmap.compress(Bitmap.CompressFormat.PNG, 100, os);
byte[] avatar =os.toByteArray();
ContentValues values = new ContentValues();
values.put(Data.RAW_CONTACT_ID, contactId);
values.put(Data.MIMETYPE, Photo.CONTENT_ITEM_TYPE);
values.put(Photo.PHOTO, avatar);
getContentResolver().update(Data.CONTENT_URI, values, null, null);</pre>
构建uri
Java代码
Uri contactUri = ContentUris.withAppendedId(ContactsContract.Data.CONTENT_URI,
Long.parseLong(contactId));
//带路径
Uri photoUri = Uri.withAppendedPath(contactUri, ContactsContract.Contacts.Photo.DATA15);
此uri为content://com.android.contacts/contactId/data15
获得联系人图片
Java代码
// 获得联系人图片, 读取的是Data类中的data15字段
Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,
Long.parseLong(contactId)); InputStream input =
ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);
Bitmap contactPhoto = BitmapFactory.decodeStream(input);
ImageView img=(ImageView)findViewById(R.id.img);
img.setImageBitmap(contactPhoto);
查询电话记录
Java代码
// 查询所有
// Cursor cursor=resolver.query(CallLog.Calls.CONTENT_URI, null,
// null,null, null);
// 查询指定号码
Cursor cursor=resolver.query(CallLog.Calls.CONTENT_URI, null,
"number=? and type=?", new String[]{"15555215556","2"}, null);
while(cursor.moveToNext()){ //取得联系人名字 PhoneLookup.DISPLAY_NAME int nameFieldColumnIndex
=cursor.getColumnIndex(CallLog.Calls.CACHED_NAME); String
contact=cursor.getString(nameFieldColumnIndex);
//取得电话号码
int numberFieldColumnIndex=cursor.getColumnIndex(PhoneLookup.NUMBER);
String number=cursor.getString(numberFieldColumnIndex);
取得浏览器所有“书签”信息:content://browser/bookmarks
数据都存储在contract的data表中,每一个联系人项存储一行
另有两篇:一篇讲解contentProvider
http://www.cnblogs.com/not-code/archive/2011/06/24.html
另一篇讲解联系人
http://blog.csdn.net/wenlin56/article/details/6074437
android向联系人中添加头像以及获得电话记录相关推荐
- android 仿微信demo————注册功能完善添加头像功能(服务端)
android 仿微信demo----微信启动界面实现 android 仿微信demo----注册功能实现(移动端) android 仿微信demo----注册功能实现(服务端) android 仿微 ...
- android 添加通讯录联系人头像,Android 手机通讯录开发时给联系人添加头像失败的坑...
Android 手机通讯录开发时给联系人添加头像失败的坑,在给联系人添加头像代码 Bitmap photo = ...; // 将 Bitmap 转为 byte[] byte[] bytes = Ls ...
- android 仿微信demo————注册功能完善添加头像功能(移动端)
android 仿微信demo----微信启动界面实现 android 仿微信demo----注册功能实现(移动端) android 仿微信demo----注册功能实现(服务端) android 仿微 ...
- Android开发之制作圆形头像自定义View,直接引用工具类,加快开发速度。带有源代码学习
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...
- Android开发之制作圆形头像自定义View,直接引用工具类,加快开发速度。带有源代码学习...
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...
- Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现
Android 图片合成:添加蒙板效果 不规则相框 透明度渐变效果的实现 暂时还未有时间开发这效果,所以先贴出来. 先贴一张效果图,这是一张手机截屏: 左上方的风景图:背景图片 右上方的人物图:前景图 ...
- android viewpager动态加载页面,Android viewpager中动态添加view并实现伪无限循环的方法...
本文实例讲述了Android viewpager中动态添加view并实现伪无限循环的方法.分享给大家供大家参考,具体如下: viewpager的使用,大家都熟悉,它可以实现页面之间左右滑动的切换,这里 ...
- 从零开始学Xamarin.Forms(四) Android 准备步骤(添加第三方Xamarin.Forms.Labs库)
从零开始学Xamarin.Forms(四) Android 准备步骤(添加第三方Xamarin.Forms.Labs库) 原文:从零开始学Xamarin.Forms(四) Android 准备步骤(添 ...
- android textView 替文字添加下划线 删除线
android textView 替文字添加下划线 删除线 方法1: tv=(TextView)findViewById(R.id.tv); tv.getPaint().setFlags(Paint. ...
最新文章
- 助力军事内容持续产出,军武次位面完成B轮融资...
- poj2752 字符串子KMP应用
- 13 种 JavaScript 代码技巧
- windows和ubuntu虚拟机之间不能自由复制粘贴东西(要安装VMware Tools)vmware-install.pl
- Docker中RocketMQ的安装与使用
- 关于毫米波技术的描述
- nginx和tomcat整合
- CCF201503-2 数字排序
- Elasticsearch--springcloud整合 high-level-client-测试-复杂检索---全文检索引擎ElasticSearch工作笔记025
- Node.js 文档(目录)
- [蛋蛋插画日记]喂喂,看“表演”请砸钱币喔!
- 易方达、鹏华、京东数科基金投顾访谈
- 【实训】基于java进销存管理系统
- arduino 超声波测距原理_基础教程10 Arduino 超声波测距
- python编程输入名字配对情侣网名_翻译:《实用的Python编程》01_05_Lists
- SQL server更改表的架构名称——修改表名前缀为[dbo]
- Magnetic Levitation for Soft-Tethered Capsule Colonoscopy Actuated With a Single Permanent Magnet
- 彻底解决“天平秤次品”问题
- Py之PyODPS:PyODPS(MaxCompute平台上的大数据处理和分析框架)的简介、安装、使用方法之详细攻略
- 白塑投影幕布为何深受青睐?