Wifi信号质量的监听

1:通过WifiManager.RSSI_CHANGED_ACTION监听信号质量RSSI的变化

2:

public class WifiRssiReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        if(intent.getAction().equals(WifiManager.RSSI_CHANGED_ACTION)){

            int strength=getStrengthLevels(context);
            System.out.println("当前信号 "+strength);
        }
    }

    public int getStrengthLevels(Context context)
    {
        WifiManager wifiManager = (WifiManager) context
                .getSystemService(Context.WIFI_SERVICE);
        WifiInfo info = wifiManager.getConnectionInfo();
        if (info.getBSSID() != null) {
            int x=info.getRssi();
            int strength = WifiManager.calculateSignalLevel(info.getRssi(), 5);

            Log.d("wifi", "getStrength: ---"+x+"____"+strength);
            return strength;

        }
        return 0;
    }
}

 3:

  <receiver android:name=".WifiRssiReceiver">
            <intent-filter>
                <action android:name="android.net.wifi.RSSI_CHANGED" />
            </intent-filter>
        </receiver>

  

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

  

 

posted @ 2018-03-30 09:38  咖喱不见不散啊  阅读(1204)  评论(0)    收藏  举报