Hola
Teneis razon los dos, aparte que con las prisas (tenia que marcharme a un sitio) se me olvidó una linea de código
Quedaria asi:
If id.ToLowerCase = "unknown"Then id= p.GetSettings("android_id") ' quita esta linea
' Pon estas ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
id1= r.GetStaticField("android.os.Build", "SERIAL")
id1 = id.ToLowerCase ' acuerdate de declarar id1
If id1.Contains ("unknown") Then id= p.GetSettings("android_id")
Aclaremos algunas cosas:
1) Añado la variable id1 para hacerlo mas "entendible" , lo único que pretendo es coger los valores que me devuelve el
r.GetStaticField y pasarlos a minuscula
2) Carlos, la diferencia con tu código son dos, que depende de la versión del sistema operativo que tenga el dispositvo, se ha de consultar una cosa u otra, de ahí a consultar el SDK, esto se podria obviar por que creo que quedan pocos ya con Android tan bajo, pero por unas lineas mas nos curamos en salud.
3) Y como bien dice Gabino, las comparaciones de cadenas en Android dejan mucho que desear, y como cuando haces la consulta dependerá del dispositivo que te va a devolver, pues lo hago con el Contains, me aseguro que si me devuelve además de "unknown" algun espacio o un CR o LF o los dos CRLF pueda saber que el dispositivo no lo ha reconocido. Seguro que si José traza le devuelve un unknown pero con algo mas y por eso no le funcionaba.
Bueno, como regalo a mis prisas
, os paso y os comento una cosa que puede que ya sepais, pero para los que no lo sepan estará ahi.
No se si sabeis que algunas marcas de dispositivos chinos meten el mismo id a todos sus modelos, y esto depende de que quieras hacer con ese id es un gran problema, la mayoria mete este código "
1234567890ABCDEF", pero otras del 1 al 9, asi que podeis añadir esto al código y así "lo cazais" en los dos casos
id1= r.GetStaticField("android.os.Build", "SERIAL")
id1 = id.ToLowerCase ' acuerdate de declarar id1
If id.Contains ("unknown") Or id.Contains("123456789") Then id= p.GetSettings("android_id")
Saludos y perdonar el lapsus