为什么在获取 MAC 地址之前不立即启用 Wifi,然后在获取 MAC 地址后将其禁用?
当然,这样做是在获取 MAC 地址绝对重要的情况下。
未经测试的代码
WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
if(wifiManager.isWifiEnabled()) {
// WIFI ALREADY ENABLED. GRAB THE MAC ADDRESS HERE
WifiInfo info = wifiManager.getConnectionInfo();
String address = info.getMacAddress();
} else {
// ENABLE THE WIFI FIRST
wifiManager.setWifiEnabled(true);
// WIFI IS NOW ENABLED. GRAB THE MAC ADDRESS HERE
WifiInfo info = wifiManager.getConnectionInfo();
String address = info.getMacAddress();
}
您将需要在清单中设置这些权限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
我不完全确定UPDATE_DEVICE_STATS
在这种情况下是否需要许可。请在决定保留之前尝试一下。