正如在评论中已经指出的那样,可以通过WifiManager接收MAC地址。
WifiManager manager = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo info = manager.getConnectionInfo(); String address = info.getMacAddress();
另外不要忘记将相应的权限添加到您的AndroidManifest.xml
请参阅Android 6.0更改 。
为了向用户提供更好的数据保护,从本版本开始,Android使用Wi-Fi和蓝牙API删除对设备本地硬件标识符的编程访问。 WifiInfo.getMacAddress()和BluetoothAdapter.getAddress()方法现在返回一个常数值02:00:00:00:00:00。
要通过蓝牙和Wi-Fi扫描访问附近外部设备的硬件标识符,您的应用必须具有ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION权限。
通过WifiInfo.getMacAddress()获取MAC地址在Marshmallow及以上版本中不起作用,它已被禁用,并将返回恒定值02:00:00:00:00:00 。
public String getMacAddress(Context context) { WifiManager wimanager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); String macAddress = wimanager.getConnectionInfo().getMacAddress(); if (macAddress == null) {