1:MAC获取工具类
public class WlanMacAddressGetter {
private static final String TAG = WlanMacAddressGetter.class.getName();
public static String getWlanMacAddress() {
try {
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = networkInterfaces.nextElement();
if (networkInterface.getName().equals("wlan0")) {
StringBuilder mac = new StringBuilder();
byte[] hardwareAddress = networkInterface.getHardwareAddress();
String hex = Integer.toHexString(hardwareAddress[0] & 0xff);
if (hex.length() == 1) {
mac.append('0');
}
mac.append(hex);
for (int i = 1; i < hardwareAddress.length; ++i) {
mac.append(':');
hex = Integer.toHexString(hardwareAddress[i] & 0xff);
if (hex.length() == 1) {
mac.append('0');
}
mac.append(hex);
}
return mac.toString();
}
}
} catch (SocketException ex) {
Log.e(TAG, null, ex);
}
return null;
}
2:IP获取
//IP地址
public static String getInNetIp(Context context) {
//获取wifi服务
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
//判断wifi是否开启
if (!wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(true);
}
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
String ip = intToIp(ipAddress);
return ip;
}
//这段是转换成点分式IP的码
private static String intToIp(int ip) {
return (ip & 0xFF) + "." + ((ip >> 8) & 0xFF) + "." + ((ip >> 16) & 0xFF) + "." + (ip >> 24 & 0xFF);
}
注意:须声明权限android.permission.INTERNET,否则在获取MAC时会引发SocketException