1. 程式人生 > >android6.0及以上獲取wifi mac地址的方法(親測可行)

android6.0及以上獲取wifi mac地址的方法(親測可行)

由於android6.0對wifi mac地址獲取進行了限制,用原來的方法獲取會獲取到02:00:00:00:00:00這個固定地址。

但是可以通過讀取節點進行獲取"/sys/class/net/wlan0/address"

在6.0以前的獲取WiFi的Mac地址

 // Android 6.0之前的版本可以用的方法(模擬器可以使用)
    public String getLocalMacAddress()
    {
        WifiManager wifi = (WifiManager)getApplicationContext().getSystemService(WIFI_SERVICE);
    //  WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        WifiInfo info = wifi.getConnectionInfo();
        return info.getMacAddress();
    }

Android6.0及其以上使用一下程式碼
 // Android 6.0以上獲取WiFi的Mac地址
    //由於android6.0對wifi mac地址獲取進行了限制,用原來的方法獲取會獲取到02:00:00:00:00:00這個固定地址。
    //但是可以通過讀取節點進行獲取"/sys/class/net/wlan0/address"
    public static String getMacAddr() {
        try {
            return loadFileAsString("/sys/class/net/wlan0/address")
                    .toUpperCase().substring(0, 17);
        } catch (IOException e) {
            e.printStackTrace();
            return "";
        }
    }
    private 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();
    }
  1. 下面的程式碼可以獲取當當前裝置連線到的網路的wifi資訊
  2. WifiManager mWifi = (WifiManager)getSystemService(Context.WIFI_SERVICE);  
  3. if (mWifi.isWifiEnabled()) {  
  4. WifiInfo wifiInfo = mWifi.getConnectionInfo();  
  5. String netName = wifiInfo.getSSID(); //獲取被連線網路的名稱
  6. String netMac =  wifiInfo.getBSSID(); //獲取被連線網路的mac地址
  7. String localMac = wifiInfo.getMacAddress();// 獲得本機的MAC地址  
  8. }  

在連線上WiFi情況下,親測通過,如下圖所示:

相關推薦

android6.0以上獲取wifi mac地址方法可行

由於android6.0對wifi mac地址獲取進行了限制,用原來的方法獲取會獲取到02:00:00:00:00:00這個固定地址。 但是可以通過讀取節點進行獲取"/sys/class/net/w

Android 8.1 獲取wifi mac地址方法

安卓8.1更新了獲取WIFI地址的方法,使用之前的方法獲取不到地址 private String getWifiMacAddress() { String str = ""; String macSerial = "";

VMware Fusion 8.0.0 for Mac序列號可用

VMware Fusion 8.0.0 序列號: FY75A-06W1M-H85PZ-0XP7T-MZ8E8 ZY7TK-A3D4N-08EUZ-TQN5E-XG2TF FG1MA-25Y1J-H857P-6MZZE-YZAZ6 參考連結:http://blog

JSONException: syntax error, expect {, actual [, pos 0 異常的解決方法有效

出現這個問題一般是出現在json格式轉換成java物件的時候,比如我們有這麼一段json資料: [{"accept_address":"廣東省深圳市軟體產業基地","remark":"順豐速運 已收取快件(測試資料)","opcode":50,"accept_time":"2018-05-0

MAC下安裝mysql-python方法可用

mac裝mysql-python有點坑,好在解決了,為了避免類似的問題耽誤大家時間,我寫下我安裝的最終過程: 我選擇的brew安裝 1、安裝brew curl -LsSf http://github.com/mxcl/homebrew/tarball/master | s

mac 下iterm2終端安裝rz sz 命令方法可用

1.首先下載item2,地址:http://www.iterm2.cn/download2.然後需要下載 iterm2-send-zmodem.sh 和 iterm2-recv-zmodem.sh 儲存到mac的 /usr/local/bin/ 路徑下(因為bin是環境變數中

windows安裝mysql-8.0.12-winx64和Navicat客戶端連線有效

1.首先下載mysql-8.0.12-winx64 : 2.下載完畢進行解: 解壓發現沒有my.ini和data檔案,這些檔案都不需要建立。 3.安裝 快捷鍵:win + R,在執行視窗輸入cmd回車。 切換到資料庫bin目錄 進入f盤f:回車,進入b

Mac忘記MySQL root密碼解決方法有效

重置MySQL root密碼 重置MySQL root使用者的密碼: 1)新建一個文字檔案sql.txt,寫入修改使用者密碼的SQL語句。 MySQL 5.7.6及更高版本寫這句: ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

android6.0獲取wifi mac地址的一種方法

由於android6.0對wifi mac地址獲取進行了限制,用原來的方法獲取會獲取到02:00:00:00:00:00這個固定地址。 但是可以通過讀取節點進行獲取"/sys/class/net/wlan0/address" public String getwifiMac

Android7.0以上 獲取uri真實路徑

背景:各大應用商店強制要求應用基於Android O(target 26)適配 無奈只能進行適配了。 嘗試過使用以下方法獲取真實路徑: String[] filePathColumn = {MediaStore.MediaColumns.DATA, MediaS

Android6.0以上版本一次請求多個許可權的處理方式

final private int REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS = 124; private void insertDummyContactWrapper() { List<Stri

Android6.0以上版本申請許可權講解

我們先來了解一個概念 在執行時請求許可權 從 Android 6.0(API 級別 23)開始,使用者開始在應用執行時向其授予許可權,而不是在應用安裝時授予。此方法可以簡化應用安裝過程,因為使用者在安裝或更新應用時不需要授予許可權。它還讓使用者可以對應用的功能進行更多控制;

Android6.0以上在SD卡上建立資料夾

首先在AndroidManifest.xml新增許可權 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 接著在佈局中新增一個按鈕

探討Android6.0以上系統APP保活實現

1簡介 APP保活系列(最高支援到Android 7.0): (1) 探討一種新型的雙程序守護應用保活方法 http://blog.csdn.net/andrexpert/article/details/53485360

win10如何修改mac地址通過

1、檢視現有的mac地址步驟:開啟cmd介面,輸入ipconfig/all按回車如下圖,箭頭所指即為當前mac地址。2、螢幕右下角右鍵點選網路圖示,見下圖開啟網路和共享中心,點選更改介面卡設定打開了網路連線介面,在乙太網處右鍵選擇屬性,點選之開啟乙太網屬性介面,選擇Micro

Mac和Windows遠端伺服器間連線和檔案互傳可用

1.工具:Parallels Client,請自行安裝 2.安裝完成介面如下: 2.右鍵點選,新建連線,輸入伺服器IP,點選高階設定按鈕 3.在彈出介面,選在左上角的連線選項,出現如下介面,輸入伺服器使用者名稱密碼,此時可以完成連線,但是無法檔案互傳。  

webstorm 2018安裝與啟用【mac也適用】有效

安裝webstorm 2018 只需2步即可,永久免費 (1)下載官方網址http://www.jetbrains.com/webstorm/download/#section=windows:中間有部分圖片沒有截圖預設就行 (2)註冊: ①下載破解壓縮包:連結:https://p

Quartus II 13.0 下載安裝、破解教程有效

作者因為安裝過程沒有截圖,所以沒有圖片,但是一定正確,因為裝過不止一次,有問題,可以聯絡作者 一、 首先是Quartus II 13.0.1 軟體的下載 如果你沒有那麼高的要求,用個低版本的Quartus II 就足夠了,而且低版本的軟體比較穩定, 為了免去大家找安裝檔案版本號不匹配的情況,

webstorm 2018安裝與啟用版本【mac也適用】下載解壓直接可用有效

安裝webstorm 2018 只需2步即可,永久免費 (2)註冊: ②在bin目錄下找到(webstorm.exe.vmoptions)和(webstorm64.exe.vmoptions)用記事本開啟這兩個檔案在最後面新增命令-javaagent:D:

JDK安裝與環境變數配置有效

裝JDK 選擇安裝目錄 安裝過程中會出現兩次 安裝提示 。第一次是安裝 jdk ,第二次是安裝 jre 。建議兩個都安裝在同一個java資料夾中的不同資料夾中。(不能都安裝在java資料夾的根目錄下,jdk和jre安裝在同一資料夾會出錯)。 我的安裝目錄如下: 第一步