本文實例講述了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程序設計有所幫助。
新聞熱點
疑難解答