2017-07-27 1 views
0

je veux stocker des contacts sur sql lite db. Le problème était que je suis incapable d'identifier les nouveaux contacts qui sont créés.Comment changer la valeur de Source_ID après avoir stocké un nouveau contact dans une DLL locale?

Solution pour cela J'utilise source_id pour identifier ce contact nouvellement ajouté. Maintenant, le nouveau contact source_id est nul, ici je peux l'identifier. Problème maintenant: Mais comment puis-je changer cette valeur quand il est ajouté en SQL Lite?

+0

Vous ajoutez en contact natif ou votre base de données SQLite app ..? –

+0

Le nouveau contact sera créé dans le téléphone pour identifier ce contact J'utilise source_id de la table des contacts bruts. Lequel lorsqu'un contact est ajouté est nul par défaut. Le problème est qu'après avoir stocké ce nouveau contact spécifique, l'identifiant source est toujours nul. Comment cet identifiant source sera changé? – Husnain

Répondre

0

Vous ne devez pas toucher la valeur source_id, elle est utilisée par l'adaptateur de synchronisation qui a synchronisé ce contact avec votre téléphone et vous risquez de corrompre le DB de contacts en le modifiant.

Au lieu de cela, vous pouvez utiliser le Contacts.CONTACT_LAST_UPDATED_TIMESTAMP:

  1. Vous requête pour tous les contacts qui ont CONTACT_LAST_UPDATED_TIMESTAMP plus alors la dernière fois que votre RAN app (ce qui signifie qu'ils ont été créés ou mis à jour depuis dernière mise à jour de votre SQLite locale DB)
  2. Parcourez la liste une par une, et voyez si leur contact _ID est déjà dans votre base de données ou non, cela signifie que c'est un nouveau contact - ajoutez-le.
+0

Merci beaucoup. – Husnain