So, I had the same problem as you, wanting to update the RSSI value when the user walked around, etc., and I could not solve it using RSSI_CHANGED_ACTION.
Like the problem you are facing, my callback will not be called correctly. Oddly enough, it was called only once when an activity was created, and then never again.
My workaround
In your onCreate (), register a callback for SCAN_RESULTS_AVAILABLE_ACTION. Then call WifiManager.startScan ().
Now, in your callback, do:
WifiManager wifiMan=(WifiManager)getActivity().getSystemService(Context.WIFI_SERVICE); int newRssi = wifiMan.getConnectionInfo().getRssi(); wifiMan.startScan();
You now have a loop in which the callback initiates a scan, receives the results, and initiates another scan.
It's rude and sucks a lot of energy, however you can watch the RSSI change as you walk.
Full code
(note that I use onResume and onPause to register and unregister, so it will repeatedly check, for example, a used battery, when activity is displayed on the screen)
@Override public void onResume() { super.onResume();
Itβs a pity that I am so late, I just needed to find out that I needed to solve your problem: P