Android:獲取設備的mac地址可靠的方法

ybw8 9年前發布 | 37K 次閱讀 Android Android開發 移動開發

    /**

     * 獲取設備的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();  
    }  </pre><br />

SimpleCallback是一個簡單的回調接口:

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

 本文由用戶 ybw8 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!