2014-10-10 7 views
5

मैं एक संपर्क डिस्प्ले नाम & ईमेल अपडेट करने का प्रयास कर रहा हूं। निम्नलिखित प्रयासों के बाद कोड स्निपेट से प्राप्त किया जाता है। लेकिन जब भी मैं इसे संपर्क ऐप में देखता हूं तो इसके बाद मैं इसे अपडेट करने के लिए किसी भी नाम को जोड़ता हूं।ईमेल आईडी के साथ प्रदर्शन नाम कैसे अपडेट करें?

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 

ops.add(ContentProviderOperation 
     .newUpdate(
       ContactsContract.Data.CONTENT_URI) 

     .withSelection(
       ContactsContract.CommonDataKinds.Email.CONTACT_ID 
         + " = ?", 
       new String[] { String.valueOf(model 
         .getContactid()) }) 
     .withValue(ContactsContract.Data.MIMETYPE, 
       Email.CONTENT_ITEM_TYPE) 
     .withValue(
       ContactsContract.CommonDataKinds.Email.DATA, 
       "[email protected]") 
     .withValue(
       ContactsContract.CommonDataKinds.Email.DISPLAY_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"); 

यह अद्यतन "प्रियंका" के रूप में आप 2 देखा प्रदर्शन नाम के बाद संलग्न हो के बजाय के रूप में "प्रियंका 2" नाम प्रदर्शित करते हैं।

+0

कि चर जहां logcat में नाम डाल रहे हैं के मूल्य की जाँच करें। 'Log.d (" नाम: ", वह उपलब्ध) का प्रयोग करें; ऐसा करने के लिए। आपने उस मूल्य को "2" या उसके जैसा कुछ समेकित करना होगा। –

+0

हाय, आपने सत्यापित किया कि 2 नाम को किस प्रकार जोड़ा जा रहा है? – Techfist

+0

फिर से उस संपर्क को लोड करने से लॉग 2 के साथ सत्यापित 2 –

उत्तर

4

अंत में मैं अपने सभी उत्तरों के लिए इसे यहाँ चलाने मेरे कोड है मिला है, धन्यवाद और समर्थन

final ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); 

    Cursor cursorEmail = getContentResolver() 
      .query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, 
        null, 
        ContactsContract.CommonDataKinds.Email.CONTACT_ID 
          + " = " 
          + model.getContactid(), 
        null, null); 

    if (cursorEmail.moveToFirst()) { 

     //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 
+0

आपने बक्षीस क्यों शुरू किया? क्या आपके उत्तर में कोई समस्या है ?? –

+0

मैंने बक्षीस शुरू कर दिया है क्योंकि मुझे जवाब नहीं मिला, तो मुझे जवाब मिला, इसलिए मैंने यहां जवाब पोस्ट किया। मैं जवाब खोजने के लिए 7 दिनों से अधिक समय व्यतीत करता हूं। –

संबंधित मुद्दे