Приложение никогда не получает RSSI_CHANGED_ACTION

Я новичок в программировании Android и пытаюсь понять концепцию BroadcastReceivers. Чтобы помочь себе, я просто пытаюсь написать небольшое приложение, которое отслеживает уровень сигнала Wifi.

Теперь, насколько я понимаю, я могу просто ждать получения RSSI_CHANGED_ACTION, транслируемого системой. RSSI должен часто меняться, что означает, что я должен часто получать это уведомление... однако, я не получаю его ни разу. Я сократил свой код до минимума, так что он просто записывает сообщение, когда получено уведомление.

public class RssiActivity extends Activity {

    public BroadcastReceiver rssiReceiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            // TODO Auto-generated method stub
            Log.d("Rssi", "RSSI changed");
        }
    };

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
    public void onResume() {
        super.onResume();
        registerReceiver(rssiReceiver, new IntentFilter(WifiManager.RSSI_CHANGED_ACTION));
        Log.d("Rssi", "Registered");
    }

    @Override
    public void onPause() {
        super.onPause();
        unregisterReceiver(rssiReceiver);
        Log.d("Rssi", "Unregistered");
    }
}

Я уже видел это сообщение Android: Как контролировать уровень сигнала WiFi, но оно, похоже, мне не помогло. Я также попробовал пример кода здесь http://android-er.blogspot.com/2011/01/check-rssi-by-monitoring-of.html, и он тоже не обновил значение RSSI. Я совсем запутался, почему так происходит. Любая помощь, которую вы можете мне оказать, будет очень признательна. Спасибо!

6
задан Community 23 May 2017 в 10:29
поделиться