Unfortunately, in iOS 11, 12, 13, and 14, you can only view your 4G LTE reception strength to the nearest cell tower if you have an iPhone with an Intel wireless modem, not a Qualcomm one. Is there a way to get Signal strength from Iphone using wifi? I know that Public API's do not allow. Istumbler allows it. But it is closed. With the Private API's is it possible? I do not want to keep on app store, so I do not mind that. Would the code for that be available? A: Unfortunately, Apple doesn’t allow third-party developers direct access to the hardware in iOS devices, which makes it difficult to develop an app that can monitor things like actual Wi-Fi signal strength. That said, however, there are a few apps out there that can work around this by monitoring secondary factors, such as network throughput.
Network problems are pretty common, and, particularly while traveling, these networks fluctuate a lot. But whenever my phone starts displaying one or the other network problems, I take the help of “Field Test Mode” as signal bars do not help a lot when it comes to knowing the real signal power. In this article, I will show how you can check the actual cell signal strength with the iPhone Field Test mode.
How to Use iPhone Field Test Mode to See Your Cell Signal Strength
The below-mentioned steps should work for iOS 13 / iOS 12 / iOS 11. The first and the foremost thing to make sure is that your WiFi is turned off: Go to Settings → Wi-Fi → Turn off Wi-Fi.
Note: The same steps can be followed for AT&T or T-Mobile
- Open the Phoneapp on your iPhone.
- Now, dial the number: *3001#12345#*
- Your device will open the “Field test mode”.
- Tap on “LTE” and select “Serving Cell Meas”.
- Now, you need to find “rsrp0” and check out the corresponding number. It is the numerical measurement of your device’s cellular signal strength in dBm (decibel milliwatts).
Note: “rsrpo” will be seen as negative and range from -40 to-130. Anything around -80 is deemed to be really fine, the -110 or below is said to be too bad.
You will also need to search the nearest backup tower and its corresponding number for the rsrp1 (“reference signal obtained power”). This will come into the picture if the main tower is out of service or not running.
Use Field Test Mode on Older Version of iOS on iPhone
(For Sprint or Verizon)
You can follow these steps in case you have an iPhone with Qualcomm chipset.
- Except iPhone X for all the models, first turn off LTE by going to Settings, then tap on Cellular, and go to Cellular Data Options.
- Make sure that Enable LTE status is Off. LTE can be turned on again after viewing the dBm reading.
- Now, tap on 1x EV-DO
- The dBm reading would be the number shown as Rx AGCO
- You might have to restart your iPhone.
- Usually, dBm is expressed as a negative number, the closer the reading is to zero, the stronger is the network signal.
How to Disable Field Test Mode on iPhone
- First, go through everything you’ve opened (by swiping up from the bottom of the screen and right) and then swipe up (from the bottom to the top of the phone) with your finger to clear everything.
- Another choice will be to press the back arrow until you’ve done the test.
Check Wifi Signal Strength Iphone
This is the easiest way to check the actual signal strength on your iPhone. Make sure to use this simple trick and avoid any sort of hassle while trying to figure out network fluctuations.
Hoping you all liked this short guide to check the actual signal strength on iPhone. Do share your views below in the comment section! Next time we’ll see you with more such insights. Till then keep exploring and stay updated to all the new features coming out!!
Some other content you may find useful:
Reading Time: 6 minutes
In a recent project one of the requirements was to fetch information about WiFi network you’re currently connected to (like ssid, bssid, rssi (signal strength) and channel) and also scan for all nearby WiFi networks.
So can we do this on iOS? Answer is not that simple and in this post I’ll explain what information you can get and how.
Scan nearby WiFi (SSID) networks
So on iOS, how can we scan for nearby WiFi networks? Short answer is you can’t as Apple does not allow you to scan for nearby SSIDs.
There is no public API you can use to access these informations. There are two workarounds but in my opinion neither of them are satisfactory as one will result in poor user experience while other will get you a rejection during AppStore submission process.
First workaround is to use NEHotspotHelper API by Apple (which requires a special entitlement from Apple) and other is to use a private library.
Apple’s official documentation says following about NEHotspotHelper – “The NEHotspotHelper interface allows Wi-Fi network implementers to facilitate connections to the large-scale wireless networks that they manage”.
But before you can use it you need to obtain a special entitlement from Apple explaining the cause. You can do this by filling a form available here. Note that it may take couple of days for Apple to approve or reject your application.
Sounds good, so what’s the problem? In case you get an approval by Apple it doesn’t mean you can now call some method in your project which will return all available WiFi networks around you. No, it means if user opens WiFi option under device Settings, once scanning is completed your app will get notified and you’ll receive informations about discovered WiFi networks. As this solution didn’t met project requirements I didn’t even try it but in case this solution satisfies your requirements here you can find little more information.
Other solution is to use private library but this will get your app banned from the store. So you can use this solution if you’re not going to submit your app on AppStore.
You can read more about this on Apple developer forum.
Get current Wi-Fi network information
What about fetching information regarding WiFi network you’re currently connected to, like ssid, bssid, rssi (signal strength), channel? Answer is yes and no because you can get information like ssid (network name) and bssid (MAC address) but not much more. There is also an undocumented way how you can get signal strength (RSSI) and I’ll show you how in this post.
Note – this won’t work on simulator, you need to test it on a real device.
First things first, let’s open Xcode and create a new project. After that select your target, click on “Capabilities” tab and there turn “Access WiFi Information” on.
To get basic informations about current WiFi network like name and Mac address we’ll use CNCopySupportedInterfaces and CNCopyCurrentNetworkInfo. As Apple says, CNCopySupportedInterfaces returns the names of all network interfaces Captive Network Support is monitoring (you can read more about it here). And CNCopyCurrentNetworkInfo returns the current network info for a given network interface (you can find more info here).
So first let’s create a model for our WiFi info and name it WiFiInfo.
After that create a new class WiFiInfoService, open it and on top of it put following line:
Without this we can’t use CNCopySupportedInterfaces nor CNCopyCurrentNetworkInfo. Here is a method for fetching informations about our WiFi network.
As you can see first we’re trying to access network interfaces and after that we’re trying to get current network interface. In case we find our network interface we’re fetching data like ssid (name) and bssid (mac address). Once we get these informations we’ll try to get signal strength (rssi). As I already said there is no official way to do this but I found undocumented feature that gives you this data – and that is by accessing information in status bar. But note that fetching rssi from status bar differs on iPhone X and other iOS devices. On all devices except iPhone X you can get signal strength in dBm (decibel-milliwatts) while on iPhone X you’ll get number of active bars which we’ll then convert to dBm (note that higher value means better signal).
So in our getWiFiInfo() we’re calling method getWifiStrength() which looks like this:
Here is a method which fetches rssi on all devices except iPhone X.
Here we’re trying to access status bar and from there fetch status bar foreground view. Then we’re looping through foreground view subviews and trying to get rssi using key “wifiStrengthRaw”.
I suggest to define your keys elsewhere and not hardcode it like I did in this example. Create Constants file and add your keys there. For example:
Fetching signal strength on iPhone X is similar but after we get data (number of bars) we need to convert it to dBm.
I created following enum for converting number of bars to dBm (note – higher value means better signal):
And here is a complete code for our class, in case you don’t want to write your own code, feel free to use it in your project:
Ios How To Test Wifi Signal Strength
As you see fetching information about WiFi network you’re currently connected to or scanning for nearby WiFi networks on iOS is not that simple or straightforward. So I hope this article was helpful and useful and that you learned something. If it was please share this article with your friends. And if you have any questions or problems leave me a comment or send an email.