/**
* 获取mac地址
* @param cxt
* @return
*/
public static String getPhoneMac(Context cxt) {
String macAddress = null;
WifiManager wifiMgr = (WifiManager) cxt.getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifiMgr.getConnectionInfo();
if (null != info) {
macAddress = info.getMacAddress();
System.out.println("WifiManager mac: " + macAddress);
}
if(StringUtils.isEmpty(macAddress)) {
macAddress = getLocalMacAddressFromIp();
System.out.println("ip mac: " + macAddress);
}
return macAddress;
}
public static String getLocalMacAddressFromIp() {
String mac_s = "";
try {
byte[] mac;
NetworkInterface ne = NetworkInterface.getByInetAddress(InetAddress.getByName(getLocalIpAddress()));
mac = ne.getHardwareAddress();
mac_s = byte2hex(mac);
} catch (Exception e) {
e.printStackTrace();
}
return mac_s;
}
public static String getLocalIpAddress() {
try {
String ipv4;
List<NetworkInterface> nilist = Collections.list(NetworkInterface
.getNetworkInterfaces());
for (NetworkInterface ni : nilist) {
List<InetAddress> ialist = Collections.list(ni
.getInetAddresses());
for (InetAddress address : ialist) {
if (!address.isLoopbackAddress()
&& InetAddressUtils.isIPv4Address(ipv4 = address
.getHostAddress())) {
return ipv4;
}
}
}
} catch (SocketException ex) {
Log.e("SystemUtils", ex.toString());
}
return null;
}
private static String byte2hex(byte[] b) {
StringBuffer hs = new StringBuffer(b.length);
String stmp = "";
int len = b.length;
for (int n = 0; n < len; n++) {
stmp = Integer.toHexString(b[n] & 0xFF);
if (stmp.length() == 1) {
hs = hs.append("0").append(stmp);
} else {
hs = hs.append(stmp);
}
if(n < len-1) {
hs.append(":");
}
}
return String.valueOf(hs);
}
获取手机mac地址
最新推荐文章于 2024-06-05 17:51:12 发布