一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Android编程获取设备MAC地址的实现方法

时间:2017-03-01 编辑:简简单单 来源:一聚教程网

 代码如下复制代码

/**

* 获取设备的mac地址

*

* @param ac

* @param callback

*      成功获取到mac地址之后会回调此方法

*/

publicstaticvoidgetMacAddress(finalActivity ac,finalSimpleCallback callback) {

    finalWifiManager wm = (WifiManager) ac .getSystemService(Service.WIFI_SERVICE);

    // 如果本次开机后打开过WIFI,则能够直接获取到mac信息。立刻返回数据。

    WifiInfo info = wm.getConnectionInfo();

    if(info !=null&& info.getMacAddress() !=null) {

      if(callback !=null) {

        callback.onComplete(info.getMacAddress());

      }

      return;

    }

    // 尝试打开WIFI,并获取mac地址

    if(!wm.isWifiEnabled()) {

      wm.setWifiEnabled(true);

    }

    newThread(newRunnable() {

      @Override

      publicvoidrun() {

        inttryCount =0;

        finalintMAX_COUNT =10;

        while(tryCount < MAX_COUNT) {

          finalWifiInfo info = wm.getConnectionInfo();

          if(info !=null&& info.getMacAddress() !=null) {

            if(callback !=null) {

              ac.runOnUiThread(newRunnable() {

                @Override

                publicvoidrun() {

                  callback.onComplete(info.getMacAddress());

                }

              });

            }

            return;

          }

          SystemClock.sleep(300);

          tryCount++;

        }

        // 未获取到mac地址

        if(callback !=null) {

          callback.onComplete(null);

        }

      }

    }).start();

}

SimpleCallback是一个简单的回调接口:

 代码如下复制代码

publicinterfaceSimpleCallback {

  voidonComplete(String result);

}

热门栏目