/** * 获取设备的mac地址 *  * @param ac * @param callback *            成功获取到mac地址之后会回调此方法 */public static void getMacAddress(final Activity ac, final SimpleCallback callback) {final WifiManager 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);}new Thread(new Runnable() {@Overridepublic void run() {int tryCount = 0;final int MAX_COUNT = 10;while (tryCount < MAX_COUNT) {final WifiInfo info = wm.getConnectionInfo();if (info != null && info.getMacAddress() != null) {if (callback != null) {ac.runOnUiThread(new Runnable() {@Overridepublic void run() {callback.onComplete(info.getMacAddress());}});}return;}SystemClock.sleep(300);tryCount++;}// 未获取到mac地址if (callback != null) {callback.onComplete(null);}}}).start();}

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

public interface SimpleCallback {void onComplete(String result);}

更多相关文章

  1. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
  3. Android平台上优秀的开源项目
  4. android 获取唯一标识
  5. android拍照与读取相册
  6. Android(安卓)热点开关状态的判断和获取热点ssid
  7. [RK3399][Android7.1.1] WifiAp:开机默认打开wifi热点
  8. Android软键盘适配问题
  9. GitHub 优秀的 Android(安卓)开源项目

随机推荐

  1. Android屏幕自适应
  2. 中国开始与Android较劲
  3. Android消息机制之Handler
  4. 浅谈iOS和Android系统版本的迭代
  5. Android物联网开发从入门到实战
  6. Umeng推送消息的坑,Android Service的andr
  7. 你到底懂Android吗?了解多少?
  8. Android仿人人客户端(v5.7.1)——项目框架
  9. Android(安卓)使用Intent传递数据的实现
  10. 基于NanoHttpd的Android视频服务器开发