2010-02-22 3 views
3

Mi problème est que j'ai besoin d'implémenter la liste de contacts dans mon application pour android 1.5, 1.6 et 2.x.Comment utiliser l'API de contacts pour Android 1.x et 2.x simultanément?

Je l'ai fait en utilisant l'ancienne API Contacts, pas ContactsContract en raison de la rétrocompatibilité avec la série 1.x. Mais lors de l'affichage de mon application sur 2.x la liste de contacts n'est pas complète. Dans certains appareils, il est affiché comme vide, et dans certains appareils, il affiche uniquement certains des contacts dans l'appareil.

Je sais qu'en utilisant Contacts API sur la série 2.x il montrera seulement les contacts du compte principal, mais ce n'est pas le cas. Il semble que seuls les contacts récemment mis à jour sont affichés, mais ce n'est pas le cas non plus.

Donc la question est: Comment mettre en œuvre correctement la liste de contacts pour les versions 2.x et 1.x android?

Merci à l'avance

Répondre

7

Mais lors de l'affichage de mon application sur 2.x la liste des contacts n'est pas complète. Dans certains périphériques , il est affiché comme vide, et dans certains périphériques, il affiche seulement certains des les contacts dans le périphérique.

Correct. L'ancienne API Contacts n'accède qu'aux contacts stockés uniquement sur l'appareil, et non à ceux qui ont été obtenus via la synchronisation avec d'autres fournisseurs. Il y avait aussi un bug avec Android 2.0 où vous n'avez même pas obtenu les contacts stockés localement, mais cela a été corrigé avec Android 2.0.1 IIRC.

La question est la suivante: Comment correctement mettre en œuvre la liste de contacts pour les 2.x et la version 1.x Android?

Pour des modifications mineures spécifiques à la version (par exemple, vous avez besoin juste le bon Uri), vous pouvez simplement utiliser la réflexion, comme le montre this sample project. Si vos besoins sont plus complexes, vous pouvez tirer parti de la gestion de classes conditionnelle en créant une interface (ou une classe de base abstraite) et deux implémentations, une pour chaque niveau d'API, et utilisez uniquement la bonne. Cela est démontré dans this sample project.

+0

Merci pour les deux réponses, je vais vérifier cela et mettre à jour lorsque vous avez terminé! – licorna

Questions connexes