1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
//Récupération de tous les contacts du téléphone
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if(cur.getCount() > 0)
{
while(cur.moveToNext())
{
if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0)
{
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",
new String[]{cur.getString(
cur.getColumnIndex(ContactsContract.Contacts._ID))}, null);
//Récupération de l'id du contact pour la mise à jour
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
//Pour chaque numéro du contact
while (pCur.moveToNext())
{
//Récupération du numéro
String numero = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
/*
ici on va chercher les informations en fonction du numéro, j'ai supprimé cette partie qui fonctionne parfaitement
*/
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
.withSelection(ContactsContract.CommonDataKinds.StructuredName.CONTACT_ID + "=?", new String[]{id})
.withValue(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, nom)
.withValue(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, contact.getPrenom())
.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, nomComplet)
.build()
);
ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
withSelection(ContactsContract.CommonDataKinds.Organization.CONTACT_ID + "=?", new String[]{id})
.withValue(ContactsContract.CommonDataKinds.Organization.COMPANY, contact.getRaisonSociale())
.build()
);
try
{
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
} |
Partager