构建uri
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
获得联系人图片
// 获得联系人图片,读取的是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);
查询电话记录
// 查询所有// 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); Stringcontact=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