android 读取mac地址

android 读取mac地址,有两种方式:

1.
public String macAddress=null;

public void getWifiMacAddress(Context context) {
final WifiManager wifi=(WifiManager)c.getSystemService(Context.WIFI_SERVICE);
if(wifi==null) return;

WifiInfo info=wifi.getConnectionInfo();
this.macAddress=info.getMacAddress();

if(this.macAddress==null && !wifi.isWifiEnabled()) {
new Thread() {
@Override
public void run() {
wifi.setWifiEnabled(true);
for(int i=0;i<10;i++) {
WifiInfo _info=wifi.getConnectionInfo();
macAddress=_info.getMacAddress();
if(macAddress!=null) break;
Thread.sleep(500);
}
wifi.setWifiEnabled(false);
}
}.start();
}
}

要留意需要下边的Permission
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>


2.
/*
* Load file content to String
*/
public static String loadFileAsString(String filePath) throws java.io.IOException{
StringBuffer fileData = new StringBuffer(1000);
BufferedReader reader = new BufferedReader(new FileReader(filePath));
char[] buf = new char[1024];
int numRead=0;
while((numRead=reader.read(buf)) != -1){
String readData = String.valueOf(buf, 0, numRead);
fileData.append(readData);
}
reader.close();
return fileData.toString();
}

/*
* Get the STB MacAddress
*/
public String getMacAddress(){
try {
return loadFileAsString("/sys/class/net/eth0/address")
.toUpperCase().substring(0, 17);
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值