Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android編程獲取設備MAC地址的實現方法

Android編程獲取設備MAC地址的實現方法

編輯:關於Android編程

本文實例講述了Android編程獲取設備MAC地址的實現方法。分享給大家供大家參考,具體如下:

/**
* 獲取設備的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() {
      @Override
      public 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() {
                @Override
                public 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);
}

更多關於Android相關內容感興趣的讀者可查看本站專題:《Android編程之activity操作技巧總結》、《Android資源操作技巧匯總》、《Android開發入門與進階教程》、《Android視圖View技巧總結》、《Android操作SQLite數據庫技巧總結》、《Android數據庫操作技巧總結》、《Android編程開發之SD卡操作方法匯總》及《Android控件用法總結》

希望本文所述對大家Android程序設計有所幫助。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved