2

我可以使用纯 Java 代码以编程方式找到 UDID 和 MAC 地址吗?

如果没有,请向我建议您用来找到它的任何自有方法。

4

1 回答 1

1

由于 JDK 1.6 开发人员能够通过类访问网卡详细信息NetworkInterface

要获取系统的 mac 地址,这里有几个很好的教程:

这些教程展示了访问网卡的传统方式和现代方式。

现在,就UDID部分而言,我假设它是一个 Android 设备,有几个选择可以用作设备的唯一标识符。选择范围通常缩小到:

  • MAC address
  • Serial Number
  • ANDROID_ID

其中最好使用 ANDROID_ID 作为 UDID,因为:

  1. 尽管可以从设备的 WiFi 或蓝牙硬件中检索 Mac 地址,但不建议这样做,因为并非所有设备都有 WiFi。另外,如果 WiFi 没有打开,硬件可能不会报告 Mac 地址。

  2. 从 Android 2.3(“Gingerbread”)开始,可以通过android.os.Build.SERIAL获得。没有电话的设备需要在此处报告唯一的设备 ID;有些手机也可能这样做。

更具体地说,它ANDROID_ID是在设备首次启动时生成和存储的 64 位数量。擦除设备时会重置它。ANDROID_ID 似乎是唯一设备标识符的不错选择,但也有缺点:

  1. 在 2.2(“Froyo”)之前的 Android 版本上,它不是 100% 可靠的。
  2. 在主要制造商的流行手机中至少存在一个被广泛观察的错误,其中每个实例都具有相同的 ANDROID_ID。

参考:

于 2013-11-05T05:59:29.623 回答