看来android的java.net.NetworkInterface实现没有
byte[] getHardwareAddress()方法
http://developer.android.com/reference/java/net/NetworkInterface.html
我发现几个论坛的人试图这样做但没有明确的答案,我需要获得一个跨设备的 UUID,所以我不能依赖电话号码或 ANDROID_ID(可以被覆盖,我认为这取决于关于拥有谷歌帐户的用户) http://developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID
在 linux 中,您可以使用 ifconfig 或从 /proc/net/arp 读取,您可以轻松获取硬件地址。
android中是否有我可以读取的文件?
必须有一种方法可以获取此地址,因为它显示在手机的“设置 > 关于手机 > 状态”中。
迟到的答案,但它可以帮助其他有同样“问题”的人。
的回答实在是直截了当:
WifiManager wifiMan = (WifiManager) this.getSystemService( Context.WIFI_SERVICE); WifiInfo wifiInf = wifiMan.getConnectionInfo(); String macAddr = wifiInf.getMacAddress();
上面的代码将为您获取设备的 MAC 地址,请记住在获取地址时启用 wifi。此代码段应在您的活动中使用。