The Short Answer
At least one app is repeatedly querying WiFi for signal strength, and it’s chewing up a lot of battery life.
The Longer Answer
1. What is RSSI
RSSI stands for Received Signal Strength Indication. It is a measure of the power present in a wireless signal. RSSI queries are made each time the wireless driver tries to determine reachability. You can learn more about it here:
http://en.wikipedia.org/wiki/Received_signal_strength_indication
2. Why So Many RSSI Events?
In this case, a WiFi RSSI driver is caused by querying for reachability – basically, trying to find out if a wireless connection is available.
There are numerous cases of poorly-written apps querying for reachability/connectivity every few miliseconds. You can find examples that query too often all over the web. I’ll just put up one here:
http://forums.coronalabs.com/topic/33356-check-for-internet-connection/
3. Impact on Battery Life
Apple’s documentation is very explicit about radio usage. The more you use the wireless radio in the phone, the shorter the batter life. They go so far as to say:
Minimizing radio usage is especially important when developing an app for an iOS device, because radio usage has an adverse effect on an iOS device’s battery life.
(Source: https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/BestPracticesForInteractingWithARemotePeripheralDevice/BestPracticesForInteractingWithARemotePeripheralDevice.html)
4. What You Can Do About It
There are several steps you can take if this is shortening your battery life:
- Use the logs to determine which apps are abusing the radio and remove them.
- If it is an app you have written, carefully look for any repeated calls to the web, especially reachability or signal strength calls.
- If the app is not your app and you must keep it installed, use airplane mode when you can to conserve battery (the LEAST desirable option).
Hope that helps!