Я новичок в программировании 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. Я совсем запутался, почему так происходит. Любая помощь, которую вы можете мне оказать, будет очень признательна. Спасибо!