解決Android 6.0擷取wifi Mac地址為02:00:00:00:00:00問題【轉】

來源:互聯網
上載者:User

標籤:blank   bsp   catch   .net   ref   比較   解決   htm   gets   

本文轉載自:http://www.jb51.net/article/128398.htm

這篇文章主要介紹了Android 6.0擷取wifi Mac地址為02:00:00:00:00:00的解決方案,非常不錯,具有參考借鑒價值,需要的朋友可以參考下 

前言:

之前項目比較舊,手機版本還比較低,還使用eclipse開發。用到了需要擷取手機wifi Mac地址。使用了如下代碼:

// Android 6.0之前的版本可以用的方法(模擬器可以使用)   private String getMacAddrOld()   {     String macString = "";     WifiManager wifimsg = (WifiManager)getSystemService(Context.WIFI_SERVICE);     if (wifimsg != null)     {       if (wifimsg.getConnectionInfo() != null)       {         if (wifimsg.getConnectionInfo().getMacAddress() != null)         {           macString = wifimsg.getConnectionInfo().getMacAddress();         }       }     }     return macString;   }

▲ 產生問題 :

使用這個方法,在模擬器上是可以正常擷取wifi mac地址,但是在Android 6.0系統上,擷取的就有問題,返回的是“02:00:00:00:00:00”

▲ 問題分析 :

原來Google官方為了給使用者更多的資料保護,從這個6.0版本開始, Android 移除了通過 WiFi 和藍芽 API 來在應用程式中可程式化的訪問本地硬體標示符。現在 WifiInfo.getMacAddress() 和 BluetoothAdapter.getAddress() 方法都將返回 02:00:00:00:00:00

▲ 解決方案 :

正所謂上有政策,下有對策。我們可以使用如下代碼去擷取手機wifi Mac地址,同樣可以解決6.0以上版本問題。值得注意的是模擬器使用如下代碼去擷取是擷取不到的!

public static String getMacAddr() {     try {       List<NetworkInterface> all = Collections.list(NetworkInterface.getNetworkInterfaces());       for (NetworkInterface nif : all) {         if (!nif.getName().equalsIgnoreCase("wlan0")) continue;         byte[] macBytes = nif.getHardwareAddress();         if (macBytes == null) {           return "";         }         StringBuilder res1 = new StringBuilder();         for (byte b : macBytes) {           res1.append(String.format("%02X:",b));         }         if (res1.length() > 0) {           res1.deleteCharAt(res1.length() - 1);         }         return res1.toString();       }     } catch (Exception ex) {     }     return "02:00:00:00:00:00";   }

手機必須是有網路的狀態下,同時注意不要忘了添加許可權

  <uses-permission android:name="android.permission.INTERNET"/>  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

總結

以上所述是小編給大家介紹的Android 6.0擷取wifi Mac地址為02:00:00:00:00:00的解決方案,希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對指令碼之家網站的支援!

解決Android 6.0擷取wifi Mac地址為02:00:00:00:00:00問題【轉】

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.