2015-09-18 73 views
0

我已經看到了解決方案,可以從開啓熱點的Android設備上運行的應用程序獲取成功連接的熱點客戶端的MAC地址。但是,我沒有看到給出連接失敗的熱點客戶端的MAC地址(即嘗試連接到熱點,但由於認證失敗而無法獲得IP地址)的連接。如何獲取無法獲取IP地址的Android熱點客戶端的MAC地址?

我尋找這樣一個失敗的熱點客戶端的MAC地址的原因是因爲我想記下附近的Wifi設備。然後,我可以識別附近的人,類似於廣告系統。只是我用普通的Android手機來做,而他們依賴專門的硬件。

我不能期待成功的熱點連接,因爲如果我嘗試使用與用戶已設置的身份驗證配置不同的身份驗證配置打開熱點,Android熱點設備會崩潰並重新啓動。 Android會將其檢測爲某些系統違規並重新啓動。這也不是一種理想的方法,因爲我寧願保持熱點配置不變。這是我想獲得失敗客戶的另一個原因。

有沒有人知道如何做到這一點?謝謝。

回答

0

請看看這個

public static String getMACAddress(String interfaceName) { 
    try { 
     List<NetworkInterface> interfaces = Collections.list(NetworkInterface 
       .getNetworkInterfaces()); 
     for (NetworkInterface intf : interfaces) { 
      if (interfaceName != null) { 
       if (!intf.getName().equalsIgnoreCase(interfaceName)) 
        continue; 
      } 
      byte[] mac = intf.getHardwareAddress(); 
      if (mac == null) 
       return ""; 
      StringBuilder buf = new StringBuilder(); 
      for (int idx = 0; idx < mac.length; idx++) 
       buf.append(String.format("%02X:", mac[idx])); 
      if (buf.length() > 0) 
       buf.deleteCharAt(buf.length() - 1); 
      return buf.toString(); 
     } 
    } catch (Exception ex) { 
    } // for now eat exceptions 
    return ""; 

} 
+0

感謝。但我正在尋找一種方法來獲取客戶端設備的MAC地址。具體而言,無法從我獲取IP地址的客戶端設備的MAC地址(假設我是啓用了wifi熱點的電話)。我沒有試圖獲得我自己的MAC地址。 – hwso

相關問題