2012-07-31 6 views
10

Mi aplicación admite minSdkVersion = 10 y segmentación 16. Deseo llamar a métodos específicos para el nivel API> = 14 si un dispositivo específico los admite. Pude comprobar la versión del sistema operativo en ejecución en tiempo de ejecución y si llamar o no a los métodos API más altos, pero cuando especifico la versión mínima del SDK, los métodos que existen solo en versiones superiores a 10 no están visibles. ¿Hay alguna forma de utilizar métodos API más altos que minSdkVersion?Llamadas API más altas cuando se apuntó SDK inferior

Respuesta

3

Métodos de API superiores son invisibles e inaccesibles debido SDK objetivo del proyecto es inferior a SDK, que se van a utilizar métodos. Por ejemplo: si desea utilizar métodos de API 14, el SDK objetivo de proyecto de Android debe ser al menos 14 o incluso mejor que el último (actualmente 16). Eso es algo obvio, pero me lo perdí. Después de eso, la solución a la que Sam hizo referencia está en uso.

11

Usted puede probar la API del dispositivo con esta:

if(android.os.Build.VERSION.SDK_INT >= 14) { 
    // Do something fancy 
} 
else { 
    // Do something regular 
} 
+0

Esto es lo que mencioné. Puedo verificar la versión del SO, pero los métodos específicos para SDK superiores a 10 son inaccesibles. // Fallará la creación de algo, porque el método que existe solo en el SDK 14 o superior no está definido para SDK 10. – Maxim

+2

Ok, esta es la entrada del blog de Android que analiza el concepto en detalle: [Cómo tener tu (Copa) pastel y comer también] (http://android-developers.blogspot.com/2010/07/how-to-have-your-cupcake-and-eat-it-too.html) – Sam

+0

Up vote. La publicación del blog me dio una idea de por qué los métodos API más avanzados son invisibles en mi código. La respuesta es simplemente apuntar al SDK más alto en las propiedades del proyecto. – Maxim

6

Además de verificar la versión actual, también debe agregar @SuppressLint("NewApi") a su método para que el compilador quiera gritar al respecto.

Cuestiones relacionadas