Answer 1: Force open the wifi
Check this link on stackoverflow for details
Answer 2: Get the mac address by network interface
The below code will help get all mack addresses of the device.
private static String getMacAddress(String interfaceName) {
try {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface networkInterface = interfaces.nextElement();
if (TextUtils.equals(networkInterface.getName(), interfaceName)) {
byte[] bytes = networkInterface.getHardwareAddress();
StringBuilder builder = new StringBuilder();
for (byte b : bytes) {
builder.append(String.format("%02X:", b));
}
if (builder.length() > 0) {
builder.deleteCharAt(builder.length() - 1);
}
return builder.toString();
}
}
return "<EMPTY>";
} catch (SocketException e) {
Log.e(Constants.TAG, "Get Mac Address Error", e);
return "<ERROR>";
}
}
Use wlan0 if you want to get the WIFI MAC address, and eth0 if you want to get the ethernet MAC address.
public static String getEthernetMacAddress() {
return getMacAddress("eth0");
}
public static String getWifiMacAddress() {
return getMacAddress("wlan0");
}