通过下面的代码段,我可以将所有联系人与REST API同步。 这很好,一切正常。 我可以添加姓名和电话号码的人。

不幸的是,我现在正在努力尝试从SDCard添加图片(我得到一个Bitmap或Drawable)

有人能指出我实现这一目标的方法还是给我一些线索?

非常感谢!

这是我目前使用的示例代码:

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
int rawContactInsertIndex = ops.size();

ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
   .withValue(RawContacts.ACCOUNT_TYPE, null)
   .withValue(RawContacts.ACCOUNT_NAME,null )
   .build());
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
   .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, rawContactInsertIndex)
   .withValue(Data.MIMETYPE,Phone.CONTENT_ITEM_TYPE)
   .withValue(Phone.NUMBER, "9X-XXXXXXXXX")
   .build());
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
   .withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex)
   .withValue(Data.MIMETYPE,StructuredName.CONTENT_ITEM_TYPE)
   .withValue(StructuredName.DISPLAY_NAME, "Mike Sullivan")
   .build());  
ContentProviderResult[] res = getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);

===============>>#1 票数:12 已采纳

请试试这个

Bitmap bmImage = BitmapFactory.decodeFile(imagePath);
                    ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
                    bmImage.compress(Bitmap.CompressFormat.JPEG, 80, baos);   
                    byte[] b = baos.toByteArray();



                    ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
                            .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
                            .withValue(ContactsContract.Data.MIMETYPE,
                                    ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE)
                                    .withValue(ContactsContract.CommonDataKinds.Photo.DATA15,b) 
                                    .build());

  ask by Waza_Be translate from so

未解决问题?本站智能推荐:

2回复

Android:在ListView中设置联系人照片,其中包含姓名和号码

我正在创建一个应用程序,需要显示带有照片,姓名和号码的手机通讯录。 我创建了一个ListView,可以用通用照片显示联系人和数字,但我无法显示contat的图片。 这是我的代码: 如何在SimpleCursorAdapter中附加联系人的图片? 还有另一个吗? 非常感谢你。
1回复

通过photo_ID显示联系人的照片

我让用户在我的应用程序中选择一个联系人,然后在主屏幕小部件上显示它,但是没有显示照片,我不知道出了什么问题。 这就是我获取照片的参考方式: 这是我显示它的方式: 为什么不起作用?
2回复

在Android中添加联系人照片

我想在android联系人列表中添加联系人。我能够成功传递联系人编号,姓名和其他详细信息。个人资料图片遇到问题。如何为联系人传递个人资料图片?
1回复

如何显示联系人ID中的联系人照片?

此代码(在我的CustomAdapter类中)仅显示基于谁向我发送文本消息的联系人ID并将其放入ArrayList,然后显示列表。 我在每个联系人ID旁边都有一个名为holder.photo的ImageView。 我如何在ImageView中显示联系人的照片? 目前,我的list
1回复

如何通过联系人API在Android中设置照片

我是开发Android应用程序的新手,我目前正在尝试执行以下操作:在所有联系人的笔记中搜索特定字符串(例如:“ E-Plus”),如果找到,则放置特定图标(例如E -Plus徽标)作为他们的联系照片。 我使用eclipse和以下测试AVD使其正常工作:平台:Android 2.3.3 AP
1回复

如何使所有联系人与给定联系人合并

我正在尝试显示联系人列表以及与之相关的照片,但是我看到大多数没有照片的联系人,尽管当我进入手机的默认(SG2)联系人列表时他们确实有照片。 我认为这是因为其中某些联系人实际上已合并,并且图片来自未显示在列表中的(原始?)联系人,所以问题是-如何将所有联系人与给定联系人合并? 我尝试使用SQL
1回复

在列表视图中加载联系人照片

我想在ListView中显示联系人的照片。 当有大量联系人时,我正面临性能问题(滚动不顺畅)。 我正在使用ArrayAdapter的getView方法将联系人照片分配给ImageView。 当不使用图像时,滚动是平滑的。 但默认的联系人应用程序滚动非常顺利。 所以我的应用程序存在性
2回复

android HD联系人照片大小的常量

我知道android数据库会保留两种联系人照片,[[[照片最多可以以两种方式存储-默认“照片”是直接存储在数据行中的缩略图大小的图像,而“显示照片”如果存在,则是存储为文件的较大版本。 ]]]小的是96 * 96,大的是480 * 480,现在的问题是: 我仍然找不到大数据库,而小数
1回复

为什么联系人照片的质量/分辨率不好?

为什么如果我从URI中获取照片质量不好(1张照片),但在Standart中,电话应用程序的分辨率却很好(2张照片)?为什么我的通讯录中没有联系人(3张照片)? 我需要做什么? 我的应用程式 标准应用 Theese 3位联系人不是我的书
1回复

通过contentResolver更新两个联系人的照片

我想彼此交换两个联系人的个人资料图片, 而不写任何字节流 ! 我想知道是否可以使用contentResolver更新PHOTO_FILE_ID,PHOTO_ID,PHOTO_THUMBNAIL_URI和PHOTO_URI。 可能吗? 这是我尝试的代码(不可运行,我只复制了总代码的某些部