android 從底層獲取mac方法

2021-08-17 07:42:14 字數 1980 閱讀 1297

android從底層獲取mac位址的方法

在android上層獲取mac有時候會出現獲取不到的問題,是因為有些韌體廠商改寫了底層,我們再去呼叫framework層**,就會出現獲取不到的問題,為了避免此問題,這裡做了乙個小小的記錄.下次遇到這種問題,便於解決問題.

android 系統和linux很像,那他是不是和linux系統一樣有個存放網絡卡資訊的檔案呢,答案是有.在根目錄下/proc/net/dev

檔案就是包含了網絡卡的所有資訊,現在我把他匯出來看一下.截圖如下:

會發現這裡只有eth0,無線網絡卡去**了呢.讓我斷開有線連線,連上無線再看一下.截圖如下:

這時候我沒看見了我們的無線網絡卡了,是wlan0,

如果有多張網絡卡,就會是eth1,eth2,這樣排序.到了這裡你會說,mac位址在那裡啊,不要著急,聽我慢慢解釋,

我們獲取到的eth0,wlan0這些值之後,我們就可以去讀取/sys/class/net/%s/address這個檔案,把%s替換成eth0這些值就行.我們以eth0為例.看一下檔案截圖.

獲取**如下:

readmacfilepath("/proc/net/dev");

publicstring readmacfilepath(string filename)

}i++;

}collections.sort(strings);

log.d(tag,"readmacfilepath sort strings is "+ strings.tostring());

for(string string : strings)

}}catch(exception e)finally

if(bufreader!=null)

if(inreader!=null)

}catch(ioexception e)

}log.d(tag,"readmacfilepath mac is "+ mac);

returnmac;

}

publicstring getmac(string filename)

bufreader.close();

inreader.close();

in.close();

}catch(exception e)

log.d(tag,"in getmac mac is "+ mac);

returnmac;

}

當讀到mac位址不為空就返回.

獲取Android的MAC位址

在android平台上,如果在開始啟動前去載入乙個測試程式,該測試程式的功能是去讀取wifi的mac位址,然後顯示出來,顯示的方式可以使用移植recovery源 的miniui。那麼讀wifi的mac位址無疑便是要初始化,裝載wifi驅動後,通過cat sys class net wlan0 add...

android獲取Mac位址和IP位址

獲取mac位址實際專案中測試了如下幾種方法 1 裝置開通wifi連線,獲取到網絡卡的mac位址 但是不開通wifi,這種方法獲取不到mac位址,這種方法也是網路上使用的最多的方法 根據wifi資訊獲取本地mac public static string getlocalmacaddressfromw...

Android獲取Mac位址 適配所有版本

最近由於專案需要mac位址的記錄,搞了乙個通用的適配類,目前經過測試可以適配android所有版本,我測試過的裝置系統android 4 5 6 7 7 都可以獲取到,廢話不多說直接上 簡潔 該類分為三類 android6.0以下 6.0以上7.0以下 7.0以上 首先是獲取mac的整合方法 pub...