Hi, I am trying to create a new Contact with a photo, but my code doesn´t work properly. The thing is that the first time I execute the code the new contact doesn´t appear on the Contacts List, but the second time I execute it the contact appears twice and properly. I have tried the same code but omitting the section that includes the photo and the contact appears on the contact list fine the first time I try, so the problem must be related to the photo inclusion.
I cannot understand why the first execution doesn´t work and the second one does. As I said, when I create the contact for the second time the new entrance appears twice on the contact list, with the contact´s name, photo, and everything, so I guess the problem should not be on the encoding. I hope someone can help me. Thanks a lot for yout time. Here is my code: .............. // Get the Contact´s Picture int id = cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts.PHOTO_ID)); Uri photoUri = ContentUris.withAppendedId(ContactsContract.Data.CONTENT_URI, id); Cursor c = getContentResolver().query(photoUri, new String[] {ContactsContract.CommonDataKinds.Photo.PHOTO}, null, null, null); byte[] photoBytes = null; if (c.moveToFirst()) { photoBytes = c.getBlob(0); .......... protected void createNewContact(String name, String mobileNumber, String emailAddress, byte[] photo) { ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>(); ops.add(ContentProviderOperation.newInsert( ContactsContract.RawContacts.CONTENT_URI) .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null) .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null) .build()); //------------------------------------------------------ Names if(name != null) { ops.add(ContentProviderOperation.newInsert( ContactsContract.Data.CONTENT_URI) .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0) .withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE) .withValue( ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, name).build() ); } //------------------------------------------------------ Mobile Number ....... //------------------------------------------------------ Email ........ //------------------------------------------------------ Photo if(photo != null) { 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, photo) .build()); } // Asking the Contact provider to create a new contact try { ContentProviderResult[] result = getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops); } catch (Exception e) { e.printStackTrace(); Log.d(TAG, "Exception: " + e.getMessage()); } Toast.makeText(TraspasoActivity.this, "New Contact " + name + " created !!", Toast.LENGTH_SHORT).show(); } -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en