Wifi 수신 레벨 5단계로 나누기

Programming/Android 2017. 8. 8. 00:50 Posted by 생각하는로뎅
반응형

1. Wifi 상태를 나타낼떄, 단계별로 나눠야할떄가 있다.

2. 아래 소스를 참고하여 5단계로 나누어 보여줄 수 있다. 

   (0 ~ 4 레벨로 표시)



private int beforeWifiLevel = 0;               // 이전 wifi 수신 레벨


@Override

protected void onResume() {

    super.onResume();


    // wifi 수신감도 체크 리시버 등록

    IntentFilter rssiFilter = new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);

    this.registerReceiver(myRssiChangeReceiver, rssiFilter);


    WifiManager wifiMan=(WifiManager)getSystemService(Context.WIFI_SERVICE);

    wifiMan.startScan();

}


@Override

public void onPause() {

    super.onPause();


    // wifi 수신감도 리시버 삭제

    this.unregisterReceiver(myRssiChangeReceiver);

}

/**

* wifi 수신감도 리시버

* @author 임성진

* @since  오전 12:35

**/

private BroadcastReceiver myRssiChangeReceiver

    = new BroadcastReceiver(){

    @Override

    public void onReceive(Context arg0, Intent arg1) {


        WifiManager wifiMan=(WifiManager)getSystemService(Context.WIFI_SERVICE);

        wifiMan.startScan();

        int numberOfLevels = 5;

        WifiInfo wifiInfo = wifiMan.getConnectionInfo();

        int level = WifiManager.calculateSignalLevel(wifiInfo.getRssi(), numberOfLevels);



        if (beforeWifiLevel != level) {

            Toast.makeText(this, "" + level, Toast.LENGTH_SHORT).show();

        }


        beforeWifiLevel = level;


    }};



반응형