国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android手機獲取Mac地址的方法

2019-10-23 18:28:11
字體:
來源:轉載
供稿:網友

最常用的方法,通過WiFiManager獲取:

/**    * 通過WiFiManager獲取mac地址    * @param context    * @return    */   private static String tryGetWifiMac(Context context) {     WifiManager wm = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);     WifiInfo wi = wm.getConnectionInfo();     if (wi == null || wi.getMacAddress() == null) {       return null;     }     if ("02:00:00:00:00:00".equals(wi.getMacAddress().trim())) {       return null;     } else {       return wi.getMacAddress().trim();     }   } 

這個方法Android 7.0是獲取不到的,返回的是null,其實是返回“02:00:00:00:00:00”

根據本地IP獲取:

/**    * 根據IP地址獲取MAC地址    *    * @return    */   private static String getLocalMacAddressFromIp() {     String strMacAddr = null;     try {       //獲得IpD地址       InetAddress ip = getLocalInetAddress();       byte[] b = NetworkInterface.getByInetAddress(ip).getHardwareAddress();       StringBuffer buffer = new StringBuffer();       for (int i = 0; i < b.length; i++) {         if (i != 0) {           buffer.append(':');         }         String str = Integer.toHexString(b[i] & 0xFF);         buffer.append(str.length() == 1 ? 0 + str : str);       }       strMacAddr = buffer.toString().toUpperCase();     } catch (Exception e) {      }      return strMacAddr;   }  /**    * 獲取移動設備本地IP    *    * @return    */   private static InetAddress getLocalInetAddress() {     InetAddress ip = null;     try {       //列舉       Enumeration<NetworkInterface> en_netInterface = NetworkInterface.getNetworkInterfaces();       while (en_netInterface.hasMoreElements()) {//是否還有元素         NetworkInterface ni = (NetworkInterface) en_netInterface.nextElement();//得到下一個元素         Enumeration<InetAddress> en_ip = ni.getInetAddresses();//得到一個ip地址的列舉         while (en_ip.hasMoreElements()) {           ip = en_ip.nextElement();           if (!ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == -1)             break;           else             ip = null;         }          if (ip != null) {           break;         }       }     } catch (SocketException e) {        e.printStackTrace();     }     return ip;   } 

這個方法Android 7.0及其以下版本都可以獲取到。

根據網絡接口獲取:

/**  * 通過網絡接口取  * @return  */ private static String getNewMac() {   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 null;       }        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) {     ex.printStackTrace();   }   return null; } 

注意網絡接口的Name有跟多:dummy0、p2p0、wlan0....其中wlan0就是我們需要WiFi mac地址。這個方法Android 7.0及其以下版本都可以獲取到。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿拉尔市| 崇左市| 凤凰县| 宁化县| 长乐市| 枣阳市| 洪泽县| 边坝县| 清新县| 浙江省| 兰溪市| 育儿| 合阳县| 巴林左旗| 南充市| 嘉善县| 兰考县| 仙游县| 墨竹工卡县| 金阳县| 渝中区| 宝鸡市| 南京市| 凤山市| 金门县| 吴川市| 平顺县| 昌乐县| 宜兰县| 柳江县| 临沧市| 紫阳县| 木里| 娱乐| 安国市| 陆川县| 涟水县| 瓮安县| 沁阳市| 雷波县| 禄丰县|