2012-05-29 10 views
6

Estoy desarrollando una aplicación en la que debo agregar el número de teléfono, correo electrónico, sitio web, dirección, etc. a mi contacto existente con solo hacer clic en un botón.Cómo agregar el número de teléfono, correo electrónico, sitio web, etc. al contacto existente

la función en el clic del botón va aquí

private void updateContact(String name) 
    { 
Log.d(TAG, "in updatecontact()"); 
Log.d(TAG,"Contact name to be updated = "+name); 
ContentResolver cr = getContentResolver(); 
    String where = ContactsContract.Data.DISPLAY_NAME + " = ? AND " + 
      ContactsContract.Data.MIMETYPE + " = ? AND " + 
      String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE) + " = ? "; 
String[] params = new String[] {name, 
     ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE, 
     String.valueOf(ContactsContract.CommonDataKinds.Phone.TYPE_HOME)}; 

Cursor phoneCur = managedQuery(ContactsContract.Data.CONTENT_URI, null, where, params, null); 

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

if ((phoneCur == null) ) { 
    add_new_contact(); 
} else { 
    // Phone no 
    ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI) 
      .withSelection(where, params) 
      .withValue(ContactsContract.CommonDataKinds.Phone.DATA, Tel) 
      .build()); 
    // Email 
    ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI) 
      .withSelection(where, params) 
      .withValue(ContactsContract.CommonDataKinds.Email.DATA, Email) 
      .build()); 
    // Website 
    ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI) 
      .withSelection(where, params) 
      .withValue(ContactsContract.CommonDataKinds.Website.DATA, Url) 
      .build()); 
    //Organization 
    ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI) 
      .withSelection(where, params) 
      .withValue(ContactsContract.CommonDataKinds.Organization.DATA, Org) 
      .build()); 
} 

phoneCur.close(); 

try { 
    cr.applyBatch(ContactsContract.AUTHORITY, ops); 
} catch (RemoteException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} catch (OperationApplicationException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
}}} 

no puedo actualizar mi contacto.

+3

Es bueno saber que estás desarrollando una aplicación. Espero que vaya bien para ti. Por cierto, ¿por qué publicaste esto? No es exactamente una pregunta, ¿verdad? –

+0

Y, ¿cuál es tu pregunta? – Lucifer

Respuesta

1

supongo que usted no sabe cómo hacerlo, y esa es su pregunta.

esto puede ayudar a

ContentResolver cResolver = context.getContentResolver(); 
public void AddToContact() 
{ 
    insertContentValues(cResolver, Contacts.Phones.CONTENT_URI, getPhoneCV(phone)); 
} 

public ContentValues getPhoneCV(RowData data) { 
     ContentValues cv = new ContentValues(); 

     String PhoneNumber = "055434553"; 
     cv.put(Contacts.Phones.NUMBER,PhoneNumber); 
     return cv; 
    } 

private Uri insertContentValues(ContentResolver cResolver, Uri uri, ContentValues cv) { 
     if (cv != null) { 
      return cResolver.insert(uri, cv); 
     } 
     return null; 
    } 
+0

Encendido, ¿en qué base ha publicado esta respuesta? – Lucifer

+0

no lo entiendo? ¿cuál es el problema con la respuesta? – AnasBakez

+0

¿me puede decir cuál es la pregunta de allí? – Lucifer

Cuestiones relacionadas