安卓獲取手機唯一設備號

感謝該作者提供的方法。http://blog.csdn.net/langzi7758521/article/details/52575724

之前項目都是獲取imei碼,遇到的麻煩就是要權限或者某些機器,返回垃圾數據。。
現在,更換方案,使用MAC地址來作爲唯一的設備碼。
由於獲取mac碼需要設備開啓過WiFi,若從未開啓過,則返回空。
所以,思路就是。在獲取MAC地址之前先判斷當前WiFi狀態,若開啓了Wifi,則直接獲取MAC地址,若沒開啓Wifi,則用代碼開啓Wifi,然後馬上關閉,再獲取MAC地址。

目前此方法測試成功,無論在哪種狀態下都能正確取得設備的MAC地址(包括開機後未啓動過Wifi的狀態下),且在未開啓Wifi的狀態下,用代碼開啓Wifi並馬上關閉,過程極短,不會影響到用戶操作。

代碼如下:


public String getMacAddress() {

    String macAddress =null;
    WifiManager wifiManager =
        (WifiManager)MyApplication.getContext().getSystemService(Context.WIFI_SERVICE);
    WifiInfo info = (null== wifiManager ?null: wifiManager.getConnectionInfo());

    if(!wifiManager.isWifiEnabled())
    {
        //必須先打開,才能獲取到MAC地址
        wifiManager.setWifiEnabled(true);
        wifiManager.setWifiEnabled(false);
    }
    if(null!= info) {
        macAddress = info.getMacAddress();
    }
    returnmacAddress;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章