views:

4012

answers:

2

I assume that the iPhone Wi-Fi hardware is able to switch between channels, since my WLAN router shows me channel 1 to 13. So that WLAN spectrum must be devided up into those, I think. I would like to observe the signal strength from a specific channel within my app. Is there a way to get this data?

+1  A: 

Your router broadcasts on a specific channel (1-13) and your iphone will just use the channel that is being broadcast. The reasons for the channels are to reduce interference with othe routers around. ideally you want to pick a channel that is not in use. The channels themselves overlap though, eg, channel 7 will still intefere with channels +/- 5 channels.

There are a number of applications you can download that will show you all access points it can find and which channel they are broadcasting on. This can help you find the best channel to use yourself.

Basically what I'm saying is, your iPhone can't choose what channel your router is broadcasting on.

Robin Day
That was not the question. I want to know how I can get the information into my app, on which channels other routers and devices are broadcasting / sending. Or in other words: Can I access the iPhone's WiFi hardware in such a way, that I extract the information of signal strength for specific channels?
Thanks
@Swanzus: Actually, Robin's answer is correct. A router uses only one channel. Assuming you have multiple networks around, and those networks have one router each, then the signal strength of the network is the signal strength of the channel.
Can Berk Güder
As for hidden networks, etc. you don't have any lower level access to the hardware.
Can Berk Güder
The answer may be factually correct but it is not an answer to this question. Mr Longus is asking if he can monitor signal strength on specific channels from the iPhone - like a stumbler or a signal strength meter. I think the answer is no because of the API restrictions.
Roger Nolan
The answer is no, you can't monitor signal strength on a specific channel because doing so is not possible. Channels don't have the notion of signal strength, only connections between endpoints. Even then "signal strength" is a value computed a few unique measurements. It is possible to get those measurements from an hidden API if that's useful. It is not possible to read the data on a specific channel directly to determine the noise level (the baseband handles that)
rpetrich
+1  A: 

WiFi is split into 13 channels - they are used to reduce interference with other routers and devices using the same spectrum. Channel can be set manually in a router but is often chosen automatically by the router. The channels themselves overlap; e.g. channel 7 will still intefere with channels +/- 5 channels. Note that not all channels are licensed in all regions of the world so you may only see (say) 11 channels on your router.

What it sounds like you are looking for is the signal to noise or even more general "quality" on any given channel - i.e. finding out which channel would be best for a specific installation. Although the various metrics that would allow you to compute this value are available at the hardware interface, the iPhone networking API does not expose them. You could investigate using a jailbroken iPhone and corresponding devkit or switching your app to the destop.

Roger Nolan