2014-10-10 14 views
5

Tôi đang cố gắng cập nhật tên hiển thị số liên lạc & email.Sau nhiều nỗ lực đạt được điều đó từ mã snipet.But có một vấn đề bất kỳ tên tôi cung cấp cho bản cập nhật nó nối thêm 2 sau khi nó nhìn thấy nó trong ứng dụng liên lạc.Làm cách nào để cập nhật tên hiển thị bằng id email?

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

Nội dung cập nhật này hiển thị tên là "priyanka 2" thay vì "priyanka" khi bạn thấy 2 được nối thêm sau tên hiển thị.

+0

Kiểm tra giá trị của biến mà nơi bạn đang đặt tên trong logcat. Sử dụng 'Log.d (" Name: ", thatVariable);' để làm như vậy. Bạn phải ghép nối giá trị đó với "2" hoặc một cái gì đó tương tự. –

+0

Xin chào, bạn đã xác minh 2 bằng cách nào được thêm vào tên? – Techfist

+0

Một lần nữa tải liên lạc đó xuất hiện được nối thêm 2 –

Trả lời

4

Cuối cùng tôi đã nhận nó chạy đây đó là mã của tôi, cảm ơn tất cả trả lời của bạn và hỗ trợ

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

Tại sao bạn bắt đầu thưởng tiền? Có vấn đề gì trong câu trả lời của bạn ở đây không ?? –

+0

Tôi đã bắt đầu tiền thưởng vì tôi không thể tìm thấy câu trả lời, sau đó tôi nhận được câu trả lời vì vậy tôi đăng câu trả lời ở đây. Tôi dành hơn 7 ngày để tìm câu trả lời. –

Các vấn đề liên quan