必威体育Betway必威体育官网
当前位置:首页 > IT技术

android向联系人中添加头像以及获得电话记录

时间:2019-11-07 17:45:16来源:IT技术作者:seo实验室小编阅读:53次「手机版」
 

联系人头像

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

文章最后发布于: 2019-05-22 09:38:41

相关阅读

JAVA项目中发布WebService服务——调用方式

相关myeclipse创建webservice和测试client项目可以参考如下 http://www.cnblogs.com/yisheng163/p/4524808.html?utm_source=tuic

对Java中反射机制的理解

简单的说,反射机制就是在程序的运行过程中被允许对程序本身进行操作,比如自我检查,进行装载,还可以获取类本身,类的所有成员变量和方法

Java中接口作用深入理解

关于Java中接口作用的深入理解。这是个很容易遇到的问题吧。 / 2019/3/1 补充 : 接口的存在也是为了弥补类无法多继承的缺点,假设

Oracle中字符串截取常用方法总结

substr 函数:截取字符串 语法:SUBSTR(string,start, [length]) string:表示源字符串,即要截取的字符串。 start:开始位置,从1开始查找

1068 万绿丛中一点红

对于计算机而言,颜色不过是像素点对应的一个 24 位的数值。现给定一幅分辨率为 M×N 的画,要求你找出万绿丛中的一点红,即有独一无

分享到:

栏目导航

推荐阅读

热门阅读