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>

优质内容筛选与推荐>>
1、Android开发之动态库调用
2、今天遇到的关于mysql的max_allowed_packet的问题
3、关于Java当中的MapUtils工具类的使用和注意事项。
4、React Native兼容ios和android的时间控件
5、<img>标签链接地址失效如何自动显示默认图片


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn