首页 > 代码库 > android 获取MAC地址
android 获取MAC地址
由于WiFi 的Mac address 是一个被动咨询。一般在开机后,不会主动上到的系统里。要等待WiFi硬件启动后,才会把有关Mac address资料记载入系统去。 所以一般android系统获取Mac address时候会出现以下几种情况:
1、在WiFi打开的时候可以获取到Mac地址
2、关闭WiFi,不重启系统,也可以获取到Mac address
3、系统重启后,不打开WiFi,获取不到Mac address
4、系统重启后,不开开WiFi,打开2G、3G网络,获取不到Mac address
要获取Mac address :1、等待WiFi启动
2、在程序中主动启动WiFi
第二种情况代码如下:
1 public String macAddress = null; 2 3 public void getWifiMacAddress(Context context) { 4 final WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); 5 if (wifi == null) 6 return; 7 WifiInfo info = wifi.getConnectionInfo(); 8 this.macAddress = info.getMacAddress(); 9 10 if (this.macAddress == null && !wifi.isWifiEnabled()) { 11 new Thread() { 12 @Override 13 public void run() { 14 wifi.setWifiEnabled(true); 15 for (int i = 0; i < 10; i++) { 16 WifiInfo _info = wifi.getConnectionInfo(); 17 macAddress = _info.getMacAddress(); 18 if (macAddress != null) 19 break; 20 try { 21 Thread.sleep(500); 22 } catch (InterruptedException e) { 23 // TODO Auto-generated catch block 24 e.printStackTrace(); 25 } 26 } 27 wifi.setWifiEnabled(false); 28 } 29 }.start(); 30 31 System.out.println("getmac:" + macAddress); 32 } 33 }
AndroidManifest.xml 中设置一下权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。