¿Alguien sabe cómo puedo verificar la versión del sistema (por ejemplo, 1.0
, 2.2
, etc.) programáticamente?¿Cómo puedo verificar la versión del sistema de Android?
Respuesta
Verificar android.os.Build.VERSION
.
CODENAME
: El nombre en clave de desarrollo actual, o la cadena "REL" si se trata de una versión de lanzamiento.INCREMENTAL
: El valor interno utilizado por el control de origen subyacente para representar esta compilación.RELEASE
: Cadena de versión visible para el usuario.
algún ejemplo sobre cómo usarlo? – jonney
La parte difícil de esto es que SDK_INT se ha definido en el nivel 4 de la API y su uso falla en 1-3. ¿Alguien sabe cómo lidiar amablemente con eso? – Zordid
SDK está disponible desde API 1, también INCREMENTAL está disponible para todas las versiones. – yoshi
Puede averiguar la versión de Android mirando Build.VERSION
.
La documentación recomienda que marque Build.VERSION.SDK_INT
con los valores en Build.VERSION_CODES
.
Esto está bien siempre que se dé cuenta de que Build.VERSION.SDK_INT
solo se introdujo en API Nivel 4, es decir, Android 1.6 (Donut). Por lo tanto, esto no lo afectará, pero si desea que su aplicación se ejecute en Android 1.5 o anterior, deberá utilizar el Build.VERSION.SDK
obsoleto.
Ejemplo cómo usarlo:
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
// only for gingerbread and newer versions
}
Ignoro por completo cualquier versión anterior a Eclair (7), Android 2.1 y muy pronto también dejaremos de apoyar al 2.1. Pero puede usar el SDK en lugar de SDK_INT. – ATom
SDK fue depecated en API nivel 4. Use SDK_INT en su lugar. – erdomester
Tengo una pregunta: si se está ejecutando en un sistema anterior a GINGERBREAD, entonces no podemos obtener android.os.Build.VERSION_CODES.GINGERBREAD, ¿se bloqueará la aplicación? – HongchaoZhang
Build.VERSION.RELEASE;
que le dará el número real de su versión; aka 2.3.3 o 2.2. El problema con el uso de Build.VERSION.SDK_INT es que si tiene un teléfono rooteado o rom personalizado, podría tener un sistema operativo no estándar (también conocido como mi Android está ejecutando 2.3.5) y que devolverá un valor nulo cuando use Build.VERSION. SDK_INT para Build.VERSION.RELEASE funcionará sin importar qué!
De SDK: "La cadena de versión visible para el usuario, por ejemplo," 1.0 "o" 3.4b5 "." .... "3.4b5" ¿cómo puedo determinar qué número de versión es? – davs
La respuesta completa 2.3.3 es el número de versión, o 2.2, o 2.3.5 (rom personalizado en mi caso). Ese es el número de versión del sistema operativo como un todo. – Falcon165o
Devuelve lo mismo Menú >> Configuración >> Acerca del teléfono. Debe etiquetarse como Versión de firmware o algo así. – Falcon165o
No puedo comentar sobre las respuestas, pero hay un gran error en la respuesta de Kaushik: SDK_INT no es lo mismo que la versión del sistema, pero en realidad se refiere al nivel API.
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH){
//this code will be executed on devices running ICS or later
}
El valor Build.VERSION_CODES.ICE_CREAM_SANDWICH
es igual a 14. 14 es el nivel API de sándwich de helado, mientras que la versión del sistema es 4,0. Entonces, si escribe 4.0, su código se ejecutará en todos los dispositivos a partir de Donut, porque 4 es el nivel API de Donut (Build.VERSION_CODES.DONUT
es igual a 4).
if(Build.VERSION.SDK_INT >= 4.0){
//this code will be executed on devices running on DONUT (NOT ICS) or later
}
Este ejemplo es una razón por la que el uso de 'número mágico' es un mal hábito.
En realidad, Build.VERSION.SDK_INT es el nivel de API, no el código de versión. Entonces, la línea correcta sería 'if (Build.VERSION.SDK_INT> = 15) {' – erdomester
¿Qué pasa si le digo que el código de versión es el mismo que el nivel de API y el SDK_INT de ICE_CREAM_SANDWICH es 14 no 15? @erdomester –
Build.Version es el lugar donde ir para obtener esta información. Aquí hay un fragmento de código sobre cómo formatearlo.
public String getAndroidVersion() {
String release = Build.VERSION.RELEASE;
int sdkVersion = Build.VERSION.SDK_INT;
return "Android SDK: " + sdkVersion + " (" + release +")";
}
Parece que tiene "Android SDK: 19 (4.4.4)"
if (Build.VERSION.SDK_INT >= ApiHelper.VERSION_CODES.HONEYCOMB_MR2) {
//do anything you like.
}
¿Podría elaborar más su respuesta agregando un poco más de descripción sobre la solución que proporciona? – abarisone
ApiHelper: no se puede resolver el símbolo –
uso esta clase
import android.os.Build;
/**
* Created by MOMANI on 2016/04/14.
*/
public class AndroidVersionUtil {
public static int getApiVersion() {
return android.os.Build.VERSION.SDK_INT;
}
public static boolean isApiVersionGraterOrEqual(int thisVersion) {
return android.os.Build.VERSION.SDK_INT >= thisVersion;
}
}
utilizar este método:
public static String getAndroidVersion() {
String versionName = "";
try {
versionName = String.valueOf(Build.VERSION.RELEASE);
} catch (Exception e) {
e.printStackTrace();
}
return versionName;
}
Por ejemplo, una característica sólo funciona para api21 hasta el siguiente que corregir errores en api21 abajo
if(Build.VERSION.SDK_INT >= 21) {
//only api 21 above
}else{
//only api 21 down
}
Para verificar la versión del dispositivo que es mayor igual o igual a Marshmallow, use este código.
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M){
}
para ckecking otros sólo cambian los VERSION_CODES como,
K para KitKat,
L para loolipop N para Turrón y así sucesivamente ...
Tenga en cuenta que Build.VERSION.SDK_INT no es fiable, es mencionado por @ Falcon165o y recientemente me encontré con ese también.
Así que para obtener los datos de cadena (basado en Android version list) de Android instalada actualmente, hice un código como el siguiente:
//Current Android version data
public static String currentVersion(){
double release=Double.parseDouble(Build.VERSION.RELEASE.replaceAll("(\\d+[.]\\d+)(.*)","$1"));
String codeName="Unsupported";//below Jelly bean OR above Oreo
if(release>=4.1 && release<4.4)codeName="Jelly Bean";
else if(release<5)codeName="Kit Kat";
else if(release<6)codeName="Lollipop";
else if(release<7)codeName="Marshmallow";
else if(release<8)codeName="Nougat";
else if(release<9)codeName="Oreo";
return codeName+" v"+release+", API Level: "+Build.VERSION.SDK_INT;
}
Ejemplo de una salida que producen:
Marshmallow v6. 0, Nivel de API: 23
Este código se bloquea en Double.parseDouble (Build.VERSION.RELEASE) cuando la versión contiene más de un punto. Por ejemplo 7.1.1 –
@ MiklósKeresztes Gracias por su comentario informativo. He solucionado mi respuesta. –
- 1. ¿Cómo verificar la versión de ASP.NET cargada en un sistema?
- 2. cómo verificar la versión de esfinge?
- 3. ¿Dónde puedo encontrar la primera versión del sistema operativo Linux?
- 4. ¿Cómo puedo verificar la versión de los módulos de Apache?
- 5. ¿Cómo puedo verificar la versión de una instancia de Liferay?
- 6. ¿Cómo verificar Delphi la versión del sistema operativo? Windows 7 o Server 2008 R2?
- 7. Verificar la versión actual del nodo
- 8. ¿Cómo verificar la versión de JRE antes del lanzamiento?
- 9. Revise la versión del sistema operativo y luego emita un comando si la versión correcta
- 10. Obtener la versión del sistema operativo del dispositivo en Android programáticamente
- 11. Cómo verificar la versión de db2
- 12. ¿Cómo puedo verificar la versión del paquete de nuestra aplicación mediante programación?
- 13. Cómo obtener la versión del sistema operativo asp.net
- 14. Obtener la versión del sistema operativo Android del agente de usuario
- 15. ¿Cómo puedo reemplazar el calendario predeterminado del sistema operativo Android?
- 16. Cómo agregar la cuenta SIP del sistema
- 17. Verificar los requisitos del sistema usando Java
- 18. Cómo obtener los colores del sistema Android
- 19. ¿Cómo puedo obtener la letra de la unidad del sistema?
- 20. Detectar la versión exacta del sistema operativo desde el navegador
- 21. ¿Cómo obtener el número de versión del sistema operativo?
- 22. Posible solo cargar líneas de código específicas según la versión del sistema operativo Android?
- 23. ¿Cómo puedo verificar la versión de la API de Python en tiempo de compilación?
- 24. cómo verificar la versión de jre usando la aplicación java
- 25. Diario del sistema de archivos de Android
- 26. ¿Cómo ejecutar la aplicación del sistema Android sin root?
- 27. ¿Cómo puedo verificar si una aplicación se ejecuta en Android?
- 28. ¿Cómo verificar la versión de iOS es iOS 6?
- 29. Cómo compilar la aplicación para Android con permisos del sistema
- 30. ¿Cómo puedo obtener la versión del ensamblaje de ejecución?
¿Hay un atajo (fragmento de código o plantilla en vivo) para agregar este control en el estudio de Android –