Obtener el número de serie del hardware del dispositivo Android
Necesito obtener el código de serie de hardware del dispositivo Android donde está instalada mi aplicación. Este número de serie del hardware es el que se puede ver en Settings > About Device > Status > Serial number
.
Aunque lo haría usando Settings.Secure.ANDROID_ID or android.os.Build.SERIAL
, pero ninguno de ellos funcionó, lo que significa que no me dieron el identificador único que estoy buscando. Por ejemplo android.os.Build.SERIAL
me consiguió el ID único que se muestra en ADB cuando se ejecuta el comando adb devices .
- Cómo reconocer la compilación específica de apk, incluso si la actualización de usuario apk en Google Play
- Creación de un identificador exclusivo para Android
- ¿Puedo obtener un ID de dispositivo Android a través de un sitio web para móviles?
- Número de serie único de Android
- ¿Hay un equivalente a iOS 'identificadorForVendor para android?
Tenga en cuenta que el objetivo de esta pregunta es no encontrar otro identificador único que podría ayudarme, sólo se trata de obtener el número de serie del hardware del dispositivo.
Gracias por la ayuda.
EDITAR:
Tenga en cuenta que no estoy buscando el valor proporcionado por la cadena android.os.BUILD.SERIAL. Sé cómo conseguir ese valor, pero no me interesa.
Tengo un dispositivo de Samsung, por lo tanto, el número de serie que utilizaron es diferente que el proporcionado por android.os.BUILD.SERIAL.
- Cómo obtener el android_id de un dispositivo?
- Uso del nuevo ID de Anunciante de Android en un SDK
- ID de dispositivo / cuenta específica de Android para la semilla de cifrado
- ¿Existe un ID exclusivo de dispositivo Android?
- ¿Qué propiedades de android.os.Build están fijas?
- Unicidad de dispositivo móvil para iOS y Android
- Android: ID de publicidad o identificación exclusiva de Android
- Perfect unique_id para el dispositivo excepto IMEI, Android_ID, WLAN Mac y dirección Bluetooth
La solución es muy simple:
Class<?> c = Class.forName("android.os.SystemProperties"); Method get = c.getMethod("get", String.class, String.class); serialNumber = (String) get.invoke(c, "sys.serialnumber", "Error"); if(serialNumber.equals("Error")) { serialNumber = (String) get.invoke(c, "ril.serialnumber", "Error"); }
Esto le proporcionará el número de serie de la mayoría de los dispositivos Samsung. Utilizo el valor "sys.serialnumber" para obtener el número de serie de las tabletas SM-T210 (Galaxy Tab 3) y SM-T230 (Galaxy Tab 4), pero probablemente funcione con más tablets de Samsung. El "ril.serialnumber" es para obtener el valor de mi Samsung GT-I8550L (Galaxy Win).
Espero que esto ayude.