2010-08-15 6 views
1

J'essaie de créer une liste de conversations pour les messages SMS. Par conséquent, je lis "content: // sms/conversations" et lis les premiers messages de chaque conversation pour trouver les numéros de téléphone des partenaires de communication. Avec ces numéros, j'essaie de récupérer le contact_id de ContactsContract.CommonDataKinds.Phone pour récupérer le reste des informations de la personne à partir de la base de données des contacts. Lorsque je fais tourner les résultats de cette requête, je constate que certains contacts n'ont pas été trouvés, bien qu'ils soient stockés dans la base de données de contacts. Par exemple, un numéro associé à l'un de ma liste de contacts et situé dans les États qui semble être stocké avec des tirets. Je comprends que cela pourrait être un problème, mais d'autres nombres que j'ai extraits des discussions sont stockés comme ils apparaissent dans les messages texte et ne sont toujours pas trouvés.Comment faire une requête ContactsContract.CommonDataKinds.Phone sur Android?

Mes questions sont les suivantes:

  1. Est-ce la bonne approche? Est-ce que je manque quelque chose? Existe-t-il un moyen plus simple d'y parvenir?
  2. Ce que je vais revenir de ContactsContract.CommonDataKinds.Phone est une référence à la _ID du contact des personnes. Je suppose que je ne peux pas gérer cela comme un bon type _ID long, mais comment dois-je faire cela?
  3. Existe-t-il un tutoriel concernant la gestion des SMS dans Android en plus de la documentation du SDK en termes de tâches environnantes comme celle-ci?

Répondre

2

Vous devriez jeter un oeil chez le fournisseur ContactsContract.PhoneLookup recommandé

Une table qui représente le résultat de la recherche un numéro de téléphone, par exemple pour l'identification de l'appelant. Pour effectuer une recherche, vous devez ajouter le numéro que vous voulez trouver à CONTENT_FILTER_URI. Cette requête est hautement optimisée.

Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber)); 
resolver.query(uri, new String[]{PhoneLookup.DISPLAY_NAME,... 
+0

pourriez-vous fournir un exemple complet –

Questions connexes