Android獲取wifi信號強度

jopen 10年前發布 | 40K 次閱讀 Android Android開發 移動開發

1.Android獲取wifi信號質量:

int strength = WifiManager.calculateSignalLevel(info.getRssi(), 5);即信號強度。

獲取方法:

 
    private String obtainWifiInfo() {  
            // Wifi的連接速度及信號強度:  
            WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);  
            // WifiInfo wifiInfo = wifiManager.getConnectionInfo();  
            WifiInfo info = wifiManager.getConnectionInfo();  
            if (info.getBSSID() != null) {  
                // 鏈接信號強度  
                int strength = WifiManager.calculateSignalLevel(info.getRssi(), 5);  
                // 鏈接速度  
                int speed = info.getLinkSpeed();  
                // 鏈接速度單位  
                String units = WifiInfo.LINK_SPEED_UNITS;  
                // Wifi源名稱  
                String ssid = info.getSSID();  
            }  
            return info.toString();  
       }  

2.注冊 receiver監聽wifi 信號變化:</span></span>
</span>

 
public BroadcastReceiver rssiReceiver = new BroadcastReceiver() {  
        @Override  
        public void onReceive(Context context, Intent intent) {  

        }  
    };  
    @Override  
    public void onResume() {  
        super.onResume();  
        registerReceiver(rssiReceiver, new IntentFilter(WifiManager.RSSI_CHANGED_ACTION));  

        Log.d("way", "Registered");  
    }  
    @Override  
    public void onPause() {  
        super.onPause();  

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