IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Doublons de contact


Sujet :

Android

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2009
    Messages : 132
    Points : 83
    Points
    83
    Par défaut Doublons de contact
    Bonjour à tous,

    Voilà je me met un peu a Android.

    Je dois récupérer le contenu d'un agenda (db mysl) pour en faire l'injection dans des téléphone Android.

    je suis occupé à faire des tests pour le moment et je sais ajouter un contact sans problème qui viens du arraylist

    par contre si on modifie le contact ou même si on refait un nouvelle import, il ajoute à nouveau le contact en doublons

    comment faire pour gèrer cela ? afin que si l'utilisateur importe à nouveau le db il n'ai pas à ré importer ce qui à déjà été importer ? voir juste importer les nouveau ou les contacts mis à jour ?

    Je cherche sur différent site mais rien de rien sur le problème

    je vous remercie d'avance pour vos pistes d'aide

    bonne journée

    Rudy
    Ryle Software
    www.rylesoftware.com

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Tout dépend comment tu l'implémentes! Il y a plusieurs solutions! La plus simple étant de se fixer sur l'identifiant du contact.

    Ainsi, lorsque tu importes de nouveau tes contacts, tu vérifies pour chacun d'entre eux si il existe deja. Si il existe on l'ajoute pas sinon on l'ajoute.

    De la même manière lorsque tu modifie un contact, soit tu garde en mémoire sa position dans ta liste pour pouvoir affecter directement les modification soit tu fais une recherche comme précédemment.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2009
    Messages : 132
    Points : 83
    Points
    83
    Par défaut
    Citation Envoyé par David55 Voir le message
    Tout dépend comment tu l'implémentes! Il y a plusieurs solutions! La plus simple étant de se fixer sur l'identifiant du contact.

    Ainsi, lorsque tu importes de nouveau tes contacts, tu vérifies pour chacun d'entre eux si il existe deja. Si il existe on l'ajoute pas sinon on l'ajoute.

    De la même manière lorsque tu modifie un contact, soit tu garde en mémoire sa position dans ta liste pour pouvoir affecter directement les modification soit tu fais une recherche comme précédemment.
    pour l'instant je début voici mon test

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    public class AddPhoneActivity extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
     
     
     
            // For brevity the ContactsContract and 
         // ContactsContract.CommonDataKinds prefixes are ignored.
         ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
         int rawContactInsertIndex = ops.size();
         ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
             .withValue(RawContacts.ACCOUNT_TYPE, null)
             .withValue(RawContacts.ACCOUNT_NAME, null)
             .build());
         ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
             .withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex)
             .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
             .withValue(StructuredName.DISPLAY_NAME, "Lost Symbol Characters")
             .withValue(StructuredName.GIVEN_NAME, "Katherine")
             .withValue(StructuredName.FAMILY_NAME, "SASA")
             .build());  
         ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
             .withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex)
             .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
             .withValue(Phone.NUMBER, "058555")
             .withValue(Phone.TYPE, Phone.TYPE_MOBILE)                
             .build());
         // For brevity, the try-catch statement is ignored.
         // Normally it's needed.
         try {
    		getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
    	} catch (RemoteException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	} catch (OperationApplicationException e) {
    		// TODO Auto-generated catch block
    		e.printStackTrace();
    	}
    }}
    le but est de comprendre le principe des inserts.

    Sur quoi faut t'il alors faire la vérification ? sur l'Id contact ou contact row ? car j'ai vu que cela étais différent mais en quoi ?

    si je fait sur un Id si on viens à effacer manuellement le contact, que deviens l'id ? l'emplacement ? il est libérer ou il est tout simplement oublier ?, cela est important car si on y ajouter un autre contact à cette emplacement, cela veux dire que lors du prochain import il va écrasé celui existant.

    je ne vois pas très bien comment faire, je suis désoler.

    il n'existe pas une méthode Android qui permet de faire cela automatiquement ?

    si non si j'ai bien compris je dois faire un check à chaque contact que j'importe dans tout le listing du carnet d'adresse, cela n'est pas un peux lourd en ressources ?

    si je dois sauver l'id pour la prochaine fois on sauve cela ou et comment ? car il doit alors avoir une persistance de la donnée pour la prochaine fois.

    encore désoler pour toute les questions mais j'essaye de comprendre le fonctionnement

    encore merci pour ton aide
    Rudy
    Ryle Software
    www.rylesoftware.com

Discussions similaires

  1. CRM Dynamics Recherche de contact avec détection de doublons
    Par Tartif74 dans le forum Microsoft Dynamics CRM
    Réponses: 0
    Dernier message: 21/01/2013, 08h59
  2. Synchro MS dynamics pour Outlook créée des contacts en doublons
    Par Dlou1986 dans le forum Microsoft Dynamics CRM
    Réponses: 0
    Dernier message: 11/05/2012, 15h24
  3. Réponses: 1
    Dernier message: 15/05/2009, 15h09
  4. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo