私は 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: How to monitor WiFi signal strengthを既に見ましたが、役に立たないようです。ここのコード サンプルも試しましたhttp://android-er.blogspot.com/2011/01/check-rssi-by-monitoring-of.htmlで、RSSI 値も更新されませんでした。これがなぜなのか、私はかなり混乱しています。あなたが私に与えることができるどんな助けでも大歓迎です. ありがとう!