91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android手機獲取Mac地址的方法

發布時間:2020-08-24 10:54:49 來源:腳本之家 閱讀:682 作者:十一月Siy 欄目:移動開發

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

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

叙永县| 周至县| 南川市| 古交市| 江阴市| 依安县| 喀喇| 江孜县| 施甸县| 平阴县| 龙江县| 聂拉木县| 都昌县| 拉孜县| 临西县| 茶陵县| 榕江县| 徐汇区| 崇阳县| 始兴县| 南岸区| 陇川县| 洛扎县| 绵竹市| 金阳县| 攀枝花市| 南和县| 呼图壁县| 连南| 宜川县| 巫山县| 滕州市| 浦东新区| 苏尼特右旗| 辽宁省| 平凉市| 重庆市| 工布江达县| 修武县| 鄂托克前旗| 呼图壁县|