我是 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 值。我很困惑为什么会这样。您能给我的任何帮助将不胜感激。谢谢!