如何通过程序获取Android设备的序列号

3
如何在Android设备中找到序列号。我需要一个在“关于设备” -> “状态” -> “序列号”中的序列号。
Build.Serial给我返回了一个不同的值。

enter image description here

4个回答

9

使用以下代码适用于 Android 7.1(SDK 25)及以下版本:

Build.SERIAL

而对于 Android 8(SDK 26+),需要使用以下代码:

Build.getSerial()


1
对我来说,旧的调用在旧的操作系统版本上给我序列号。新设备(运行Oreo的S8)给我一个序列号,但不是那个序列号。也就是说:我得到了一个序列号,但它与用户在UI中可见的序列号不同(问题中的图像)。不知道这是否是由于安全性或三星特定的事情而导致的混淆。但如果您需要一个用户可以在支持情况下向您传达的数字,则值得注意。 - Martin Westin

2
您可以使用此Gist文件获取设备ID。它适用于Android Pie之前的所有设备。如果您的目标是Pie,则可以在Gist文件中添加以下代码。
if (serialNumber.equals("unknown")){
   try {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
           serialNumber = Build.getSerial();
        }
    } catch (SecurityException e) {
        e.printStackTrace();
        Log.d("responseData", String.valueOf(e.getMessage()));
    }
}

将这段代码放在这行代码之上

// If none of the methods above worked
if (serialNumber.equals("")) {
    serialNumber = null;
}

我在 Nokia 6.1 Plus 上尝试了这段代码,它可以正常运行。


0
使用以下代码可以获取Android设备的序列号
Build.SERIAL

-6

实际上,

Build.SERIAL

在旧版和新版API上都能正常工作。 测试过的API版本: API 16 API 23 API 26 API 28


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接