android – 如何使用电子邮件ID更新显示名称?

我正在尝试更新联系人显示名称&电子邮件.经过很多努力,从以下代码snipet实现了这一点.但是有一个问题我提供更新它后面附加2我在联系人应用程序中看到它.

ArrayListdisPLAY_NAME,"priyanka")
        .withValue(
                ContactsContract.CommonDataKinds.Email.TYPE,ContactsContract.CommonDataKinds.Email.TYPE_WORK)
        .build());

getContentResolver().applyBatch(ContactsContract.AUTHORITY,ops);

Context ctx = getApplicationContext();
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(ctx,"Update successful",duration);
toast.show();

Logger.debug("Update successful");

这更新显示名称为“priyanka 2”而不是“priyanka”,因为您看到2在显示名称后附加.

最佳答案
最后我得到它在这里运行我的代码,感谢所有的回复支持

    final ArrayListetoFirst()) {

      //Update Email 

        ops.add(ContentProviderOperation
                .newUpdate(Data.CONTENT_URI)
                .withSelection(
                        Email.CONTACT_ID
                                + "=? AND "
                                + ContactsContract.Data.MIMETYPE
                                + "=?",new String[] {
                                String.valueOf(model
                                        .getContactid()),ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE })
                .withValue(
                        ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE)
                .withValue(
                        ContactsContract.CommonDataKinds.Email.TYPE,ContactsContract.CommonDataKinds.Email.TYPE_WORK)
                .withValue(
                        ContactsContract.CommonDataKinds.Email.DATA,txtEditedMailId
                                .getText()

                                .toString()
                                .trim()
                                .toLowerCase())

                .build());

         //Update image 

        BitmapFactory.Options options = new BitmapFactory.Options();
        options.inPreferredConfig = Bitmap.Config.ARGB_8888;
        Bitmap bitmap = BitmapFactory
                .decodeFile(localPathEditedImage,options);

        Logger.debug("path--------"
                + imgAbsPath);
        ByteArrayOutputStream baos = new ByteArrayOutputStream();

        bitmap.compress(
                Bitmap.CompressFormat.PNG,100,baos); // bm is the bitmap object
        byte[] photoByteArray = baos
                .toByteArray();

        Builder builder = ContentProviderOperation
                .newUpdate(ContactsContract.Data.CONTENT_URI);

        builder = ContentProviderOperation
                .newUpdate(ContactsContract.Data.CONTENT_URI);
        builder.withSelection(
                ContactsContract.Data.CONTACT_ID
                        + "=?"
                        + " AND "
                        + ContactsContract.Data.MIMETYPE
                        + "=?",new String[] {
                        String.valueOf(model
                                .getContactid()),ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE });
        builder.withValue(
                ContactsContract.CommonDataKinds.Photo.PHOTO,photoByteArray);
        ops.add(builder.build());

          //Update display name 

        ops.add(ContentProviderOperation
                .newUpdate(
                        RawContacts.CONTENT_URI)

                .withSelection(
                        Email.CONTACT_ID
                                + " = ?",new String[] { String.valueOf(model
                                .getContactid()) })

                .withValue(
                        RawContacts.disPLAY_NAME_PRIMARY,txtEditedname.getText()
                                .toString())

                .build());

    }
    cursorEmail.close();

    //Execute Batch

    getContentResolver().applyBatch(
            ContactsContract.AUTHORITY,ops);


//Contact updated

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...