本文實例講述了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程序設計有所幫助。