2011-12-12 11 views
5

以下のスニペットを使用して、すべての連絡先をREST APIと同期させることができます。 これは素晴らしいことですが、すべて正常に動作します。名前と電話番号の人を追加できます。ContentProviderOperation内で連絡先の画像を追加するにはどうすればよいですか?

残念ながら、私は今、SDカード(私はビットマップまたは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); 

答えて

11

この

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()); 
+0

パーフェクトをお試し下さい!どうもありがとうございます! –

+0

ContactsContract.CommonDataKinds.Photo.PHOTOはContactsContract.CommonDataKinds.Photo.DATA15のための読み込み可能な同等です – Roel

関連する問題