您的位置:首页 > 移动开发 > Android开发

安卓系统获取mac地址

2017-01-20 13:40 447 查看
/**
* 获取mac地址,如果wifi没有开启则尝试开启wifi并获取mac地址,
* 为了防止NAR最好放在子线程内执行
*/
public String getMac2() {
String macSerial = "";
WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
boolean state = wifiManager.isWifiEnabled();
if (!state) {
wifiManager.setWifiEnabled(true);
}
macSerial = getMac();
int time = 50; // MAXTIME;
while ((macSerial == null || macSerial.equals("")) && time > 0) {
try {
Thread.currentThread();
Thread.sleep(300);
macSerial = getMac();
time--;
} catch (Exception e) {
e.printStackTrace();
}
}

return macSerial;
}

/**
* 直接获取mac地址,如果wifi没有开启则获取不到
* @return
*/
public String getMac() {
String macSerial = "";
try {
Process pp = Runtime.getRuntime().exec(
"cat /sys/class/net/wlan0/address");
InputStreamReader ir = new InputStreamReader(pp.getInputStream());
LineNumberReader input = new LineNumberReader(ir);

String line;
while ((line = input.readLine()) != null) {
macSerial += line.trim();
}

input.close();
} catch (Exception e) {
e.printStackTrace();
}

return macSerial;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android