Search code examples
androidserial-number

Android: How to programmatically access the device serial number shown in the AVD manager (API Version 8)


How do I programmatically access the value shown in the image below ?

enter image description here


Solution

  • This is the hardware serial number. To access it on

    • Android Q (>= SDK 29) android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE is required. Only system apps can require this permission. If the calling package is the device or profile owner then the READ_PHONE_STATE permission suffices.

    • Android 8 and later (>= SDK 26) use android.os.Build.getSerial() which requires the dangerous permission READ_PHONE_STATE. Using android.os.Build.SERIAL returns android.os.Build.UNKNOWN.

    • Android 7.1 and earlier (<= SDK 25) and earlier android.os.Build.SERIAL does return a valid serial.

    It's unique for any device. If you are looking for possibilities on how to get/use a unique device id you should read here.

    For a solution involving reflection without requiring a permission see this answer.