2010-08-11 6 views
2

J'ai une application qui fonctionne très bien dans Android 1.x, mais pas dans Android 2.x je dois faire des choses différentes en fonction de la version d'Android l'application est en cours d'exécution sur (contacts interrogation). est-il possible d'avoir deux méthodes distinctes dans l'application que je peux choisir en fonction de la version d'Android que l'application utilise?comment mieux faire face à différentes versions d'Android?

merci beaucoup

Ed

Répondre

0

Vous pouvez lire la version OS du device.You peut avoir différentes méthodes dans votre application en fonction de la version du système d'exploitation de l'appareil, mais vous ne pouvez compiler contre une version du SDK . Par conséquent, vous devez choisir le minimum, ce qui à l'heure actuelle est actuellement 1,6 (Je pense que 1,5 est rarement utilisé plus)

voir: http://developer.android.com/reference/android/os/Build.VERSION.html

développement pour plusieurs écrans/dispositifs: http://developer.android.com/guide/practices/screens_support.html

+0

son contre la compilation un seul sdk des thats mon problème, est-ce pas? –

1

vous pouvez obtenir la version sdk avec BUILD.VERSION, vérifier How to retrieve the android sdk version?

Cependant, je me demande quelle fonction est exécutable sur 1.x et non disponible sur 2.x. avez-vous utilisé l'une des classes internes?

je suggère vraiment que vous résoudre le problème de la fonction, plutôt que de faire des choses différentes avec différentes versions, si elle peut être éviter.

+0

En interrogeant les contacts sur le téléphone, v2.x utilise ContactsContract alors que v1.x utilise Contacts.ContactMethods.CONTENT_URI (ai-je raison de penser que ???) Merci beaucoup –

+0

oui, vous avez raison. cette partie nécessite une vérification de la version. voici un tutoriel détaillé: http://www.higherpass.com/Android/Tutorials/Working-With-Android-Contacts/3/ –

+0

Merci beaucoup pour cela. C'est un peu au-dessus de mes niveaux de connaissance mais je vais m'asseoir et essayer. –

5

Utiliser des chargeurs à réflexion et de classe. Voir ce post sur le blog des développeurs Android: http://feedproxy.google.com/~r/blogspot/hsDu/~3/9WEwRp2NWlY/how-to-have-your-cupcake-and-eat-it-too.html

Edit: Merci à CommonsWare pour souligner un exemple de projet qui utilise à la fois les fournisseurs de nouveaux contenus et anciens contacts et chargement de classe conditionnelle: http://github.com/commonsguy/cw-advandroid/tree/master/Contacts/Spinners/

+1

Voici un exemple de projet utilisant à la fois les anciens et les nouveaux contacts fournisseurs de contenu, via le chargement de classe conditionnelle: http://github.com/commonsguy/cw-advandroid/tree/master/Contacts/Spinners/ – CommonsWare

+0

http: // Android- developers.blogspot.com/2010/07/how-to-have-your-cupcake-and-eat-it-too.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+blogspot%2FhsDu+%28Android+Developers+Blog% 29 suggère de rouler sur les reflets – OneWorld

0

L'exemple carte de visite qui vient avec le dernier SDK Android était une grosse, grande aide. Je le recommande à ceux qui, comme moi, pourraient ne pas être un développeur professionnel à plein temps. Merci à tous pour votre aimable contribution.

Questions connexes