Can you determine if Wifi security is enabled on network you're connected to on iOS? - iphone

In my iOS app, I'd like to be able to determine whether the Wifi network the device is currently connected to has Wifi security of some sort enabled (wep, wpa, etc).
CaptiveNetwork provides the SSID of the connected network, but not much else.
Is there an approved way of determining if WEP/WPA/etc are enabled on the currently connected Wifi network?

Apple is not providing any Wifi related API and all the information that is available to you is given by the actual network, so basically you cant access this information.

Related

the difference between wi-fi direct and mobile ad-hoc networks in smart phones?

I want to create a mobile ad-hoc network for android devices.But first I want to know the differences between wi-fi direct, mobile ad-hoc networks and SPANs. Could anybody explain for me?
Thanks.
Firstly, SPANs are just Mobile ad Hoc Networks for Smartphones, SPAN stands for Smart phone ad hoc network so we'll skip that for now.
I'm not sure what kind of depth you're looking for, but in a nutshell:
In Wifi Direct, devices negotiate each other to decide which device will act as an Access point. In Wifi direct you are trying to simulate a Wifi network, where all devices do not interact with each other. Technically, you're creating a "soft" access point on particular devices, and other devices will choose to communicate with these Soft AP's.
In Mobile Ad Hoc (MANET), you can think of every device as a mobile router. Each device is required to properly route traffic, whether it be to some device or to the internet.
EDIT* I also wanted to communicate that in MANET, every device can communicate with each other. This is a very important distinction from Wifi Direct.
Wifi Direct
Mobile Ad Hoc Network

How to get cellular carrier List from my iphone app assign one from them manually from application itself

Is there a way may be using private APIs to obtain the complete list of available Cellular networks and assign one manually from my application itself.
Any help is appreciated
No.
Apple is very protective of that kind of thing - an app can't manually assign either a cellular or wireless network for the device to connect to. There is a special chip in the device that handles cellular connections, and only the user can control WiFi connections.

use 3g for internet when connected to adhoc wifi (using private API's)

First and foremost,
I am looking for a resource to use Private API's.
this is an enterprise application and will never go to the app store
I need to take as much configuration out of the users hands as possible.
That being said, I have a device that an ipad will be connected to and communicate with via an adhoc wifi network supplied by the device. the ipad connects to this device and sends raw data to it via socket connections. I also need to connect to the internet for data syncing.
80% of the time, the ipad will be connected to this adhoc wifi device. Management software on the ipad does not allow the user to adjust wifi settings so I am trying to make sure I am connected to my device without limiting my server syncing. I know I can determine the connection using apples Reachability class, this is not what i am looking for. I need to use BOTH 3g AND wifi.
Is there a way to enforce this in code? Or is there a resource for the private API's that I can look at to find a way?
This will be in iOS 5 and the most preferable method would be to just route my http requests via some private api method to use 3G and let the socket requests use wifi to the adhoc device.
code samples would be awesome, links / class names to research would be very much appreciated.
and once again this is not going into the app store, it is an enterprise app
the resolution i found was to assign an ip in the privately assigned ip range the ipad uses (169.254.x.x) to the adhoc device then let the ipad determine an ip. Then see if i can open a socket connection to the device (to determine if its available) and then issue a print.
Going this route, i am still able to use 3g data as well as communicate with the device via wifi.

Detecting wifi network change in iPad

I have an iPad application which requires me to stream a video to a user only if he is connected to a particular wifi network. If his wifi network changes, I need to stop streaming.
Is there any way to know that the wifi network that the user is connected to has changed?
Are there any public APIs that can give me the SSID of the wifi network I am connected to or the VSS ID or the MAC address of the router?
Thanks and Rgrds,
Hetal
There is no supported way to do this, but it is possible.
See this question for more details:
Accessing iPhone WiFi Information via SDK

Any iPhone SDK API available to promote 3G/GPRS over WiFi in an iPhone application

I have a requirement to promote 3G/GPRS over WiFi connectivity in the iPhone application I am developing. Please let me know if this is possible and if yes, how?
The problem is when I have a WiFi network which is available and connected but not logged in using Captive Portal, I cannot use that WiFi network to perform the tasks which require internet connection. What i have noticed is Reachability API detects the available WiFi but I cannot use it as I am not logged in and so I am not connected to internet using this WiFi hotspot until I login. So I want to use 3G/GPRS to perform the tasks requiring internet connectivity.
iPhone's default behavior is it uses WiFi when its available and if not then only 3G/GPRS.
So please let me know if both 3G/GPRS and WiFi are available but I am connected to internet not using WiFi but 3G/GPRS how to use 3G/GRPS to perform the tasks requiring internet connectivity.
Regards,
Third-party applications don't get control of where their data comes from. About all you're going to be able to do is ask your users to turn wifi off while your application does its thing. If you need to get back onto wifi after doing the initial data transfer, you could make some clever use of the iOS 4 multitasking and local-notification APIs: when your application enters the background, it could start a background-task handler (using -beginBackgroundTaskWithExpirationHandler: in your app delegate's -applicationDidEnterBackground:) to wait for the wifi connection to become unavailable, do its thing with the cell network, then create a UILocalNotification to tell the user it's okay to turn wifi back on again. That way, the user could get the benefits of whatever your app does and still keep the connection they started out on.
If you are creating an app which needs to access certain network resource(s) to function, then you should just ping, or try to connect to those resources directly instead of just depending on reachability for the decision. If you can't ping your server, then have the app do the same thing it would if reachability reported zero connectivity (even though it may not be).
For security reasons, Apple doesn't allow developer to do such settings pro grammatically, despite you GPRS network connection to achieve some purposes.