安卓手机获取Mac地址的方法

  

最常用的方法,通过WiFiManager获取:
  

     /* *   *通过WiFiManager获取mac地址   * @param上下文   * @return   */私有静态字符串tryGetWifiMac(上下文语境){   WifiManager wm=(WifiManager) context.getApplicationContext () .getSystemService (Context.WIFI_SERVICE);   WifiInfo wi=wm.getConnectionInfo ();   如果(wi==null | | wi.getMacAddress ()==null) {   返回null;   }   如果(02:00:00:00:00:00 .equals (wi.getMacAddress () .trim ())) {   返回null;   其他}{   .trim返回wi.getMacAddress () ();   }   }   之前      

这个方法Android 7.0是获取不到的,返回的是null,其实是返回“02:00:00:00:00:00”

  

根据本地IP获取:
  

     /* *   *根据IP地址获取MAC地址   *   * @return   */私有静态字符串getLocalMacAddressFromIp () {   字符串strMacAddr=零;   尝试{//获得IpD地址   InetAddress ip=getLocalInetAddress ();   byte [] b=NetworkInterface.getByInetAddress (ip) .getHardwareAddress ();   StringBuffer缓冲=new StringBuffer ();   for (int i=0;我& lt;b.length;我+ +){   如果(我!=0){   buffer.append (“:”);   }   字符串str=整数。toHexString (b(我),0 xff);   buffer.append (str.length ()==1 & # 63;0 + str: str);   }   .toUpperCase strMacAddr=buffer.toString () ();   }捕捉(异常e) {      }      返回strMacAddr;   }/* *   *获取移动设备本地IP   *   * @return   */私有静态InetAddress getLocalInetAddress () {   InetAddress ip=零;   尝试{//列举   Enumerationen_netInterface=NetworkInterface.getNetworkInterfaces ();   而(en_netInterface.hasMoreElements()){//是否还有元素   NetworkInterface倪=(NetworkInterface) en_netInterface.nextElement();//得到下一个元素   Enumerationen_ip=ni.getInetAddresses();//得到一个ip地址的列举   而(en_ip.hasMoreElements ()) {   ip=en_ip.nextElement ();   如果(! ip.isLoopbackAddress (),,ip.getHostAddress () .indexOf (“:”)==1)   打破;   其他的   ip=零;   }      如果(ip !=null) {   打破;   }   }   }捕捉(SocketException e) {      e.printStackTrace ();   }   返回的ip;   }   之前      Android 7.0

这个方法及其以下版本都可以获取到。

  

根据网络接口获取:
  

     /* *   *通过网络接口取   * @return   */私有静态字符串getNewMac () {   尝试{   List所有=Collections.list (NetworkInterface.getNetworkInterfaces ());   (NetworkInterface nif:所有){   如果(! nif.getName () .equalsIgnoreCase (“wlan0”)继续;      byte [] macBytes=nif.getHardwareAddress ();   如果(macBytes==null) {   返回null;   }      StringBuilder res1=new StringBuilder ();   (字节b: macBytes) {   res1.append(字符串。格式(“% 2 x:”, b));   }      如果(res1.length()在0){   res1.deleteCharAt (res1.length () - 1);   }   返回res1.toString ();   }   }捕捉(例外的前女友){   ex.printStackTrace ();   }   返回null;   }   之前      

注意网络接口的名字有跟多:dummy0, p2p0, wlan0 ....其中wlan0就是我们需要无线mac地址。这个方法Android 7.0及其以下版本都可以获取到。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

安卓手机获取Mac地址的方法