2010-04-02 3 views
2

Nous construisons une application Android avec le SDK cible 1.6, donc il fonctionnera sur 1.6 appareils et plus. Nous aimerions soutenir Live Wallpapers, dont nous savons qu'il ne s'agit que de 2.1+. Existe-t-il un moyen de créer une application avec 1.6 SDK comme cible, mais de détecter si le périphérique sur lequel il s'exécute est 2.1, et seulement dans ce scénario appelez l'API de live wallpaper.Afficher Live Wallpaper dans une application cible 1.6 en détectant s'il s'agit d'un périphérique 2.1?

Nous essayons d'éviter d'avoir à construire des versions séparées 1.6 et 2.1, et aimerions être en mesure de soutenir Live Wallpapers pour seulement 2,1 appareils. Donc, pour être clair - 1 application, qui peut supporter 1.6 et plus, et soutenir les fonds d'écran animés pour les appareils 2.1.

Une façon de faire?

Répondre

2

Peut-être. Je n'ai pas travaillé avec Live Wallpapers, mais voici comment j'utilise le AccountManager sur 2. * mais avec un repli sur 1. * où il n'est pas disponible.

Je construis avec le SDK 2.1, mais mes états Manifest

<uses-sdk android:minSdkVersion="3" /> 

Cela ne permet l'application de fonctionner sur 1,5 appareils vers le haut.

Je restreindre mon utilisation de android.accounts.AccountManager à une classe wrapper, je l'ai appelé UserEmailFetcher.

Il sera possible d'utiliser cette classe sur des appareils 2. *. Cependant, sur les dispositifs antérieurs, java.lang.VerifyError se déclenchera la première fois que cette classe est rencontrée dans le code. C'est ce que j'attrape, et j'effectue une action de repli.

String name; 
try { 
    name = UserEmailFetcher.getEmail(this); 
} catch (VerifyError e) { 
    // Happens if the AccountManager is not available (e.g. 1.x) 
} 

Espérons que ça aide.

+0

Super, ça a marché, merci !! – itamarw

+0

Heureux que ça a marché pour vous! N'oubliez pas que vous pouvez marquer les réponses «acceptées» en cliquant sur le symbole cocher/cocher! –

+0

Oh, à droite, je suis un noob, désolé;) – itamarw

Questions connexes