1

私はアンドロイドアプリケーションに取り組んでいます。私のアプリでは、詳細と画像を A​​ndroid の連絡先に追加する必要があります。だから私は次のコードを使用しました

private void addcontact() {
            // TODO Auto-generated method stub

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

            Bitmap bm = getBitmapFromURL(imageurl);

            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            bm.compress(Bitmap.CompressFormat.PNG , 75, stream);

            ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
                       .withValue(ContactsContract.Data.RAW_CONTACT_ID, 9) // here 9 is _ID where I'm inserting image
                       .withValue(ContactsContract.Data.IS_SUPER_PRIMARY, 1)
                       .withValue(ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE)
                       .withValue(ContactsContract.CommonDataKinds.Photo.PHOTO,stream.toByteArray())
                       .build());



            ops.add(ContentProviderOperation.newInsert(android.provider.ContactsContract.Data.CONTENT_URI)
               .withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex)
               .withValue(Data.MIMETYPE,StructuredName.CONTENT_ITEM_TYPE)
               .withValue(StructuredName.DISPLAY_NAME, "sarath")
               .build());



            try {
                ContentProviderResult[] res = getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
            } catch (RemoteException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (OperationApplicationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }



        }
    });

コードは例外なく機能しています。連絡先は連絡先に正常に追加されましたが、連絡先の画像が読み込まれません。2 番目の疑問は、3 種類の電話番号 (自宅、職場、携帯電話) があることです。1 つの電話番号を追加することはできますが、3 つすべてを追加するにはどうすればよいでしょうか。アドレスとメールIDを追加する方法. 友達を助けてください.

4

1 に答える 1