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

首頁 > 系統 > Android > 正文

Android手機獲取Mac地址的方法

2019-12-12 02:50:18
字體:
來源:轉載
供稿:網友

最常用的方法,通過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及其以下版本都可以獲取到。

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平江县| 墨脱县| 祁门县| 财经| 涟水县| 迭部县| 留坝县| 广水市| 九台市| 健康| 竹北市| 凭祥市| 肥西县| 翼城县| 平顶山市| 花莲市| 灵宝市| 奇台县| 集安市| 江都市| 商都县| 万州区| 日喀则市| 兴业县| 广汉市| 沛县| 友谊县| 康定县| 左权县| 阜新市| 象山县| 开鲁县| 皮山县| 安康市| 红原县| 出国| 阆中市| 游戏| 广德县| 宣城市| 七台河市|