Scanning and switching Wifi networks on iOS 4.0 and above - ios

I am trying to find whether the private APIs listed at: http://code.google.com/p/iphone-wireless/wiki/Apple80211Functions still work with iOS 4.0 and above. I am trying to turn the wifi ON, scan the networks available and latch on to one of the networks. I am not going to put the application in appStore and it is just an experiment. I found many applications pulled down from the appStore but they seem to have been developed on iOS versions less than 3.0. I would also like to get an example if possible.
Please Help.

I needed the same thing as you, and after some research I must say that starting from iOS 5 it is possible to scan the network list using private API on a jailbroken device only. This blog post states the following:
Last year Apple has blocked wifi scanners from App Store, however till iOS5 it was still available for private usage via WiFiManager bundle.
In iOS5, WifiManager bundle no more exists however 80211 functions are still available via IPConfiguration bundle.
The API you linked provides an open-source tool Stumbler which seems like something you were seeking. The tool is claimed to work under iOS 5.

Tried stumbler for iOS5 via linking to framework
/System/Library/SystemConfiguration/IPConfiguration.bundle/IPConfiguration
I could link to Apple80211Open, Apple80211BindToInterface, Apple80211Scan. However, I only receive empty WiFi scan results on jailbroken iPhone4S / iOS 5.1.1
The folks from WifiFofum did a good job and have a app on cydia which runs on JB iOS 5.1.1 and does an excellent job for scanning WiFi networks (BSSID, link level, SSID, channels, ...).

Related

How to reduce my iOS app's bundle size?

I am working on an iOS app that integrates with multiple bluetooth devices (e.g. printers and barcode scanners). Each of the devices comes with it's own version of SDK and most of them just have objective-c/swift SDKs but not javascript SDKs.
Would like to find out what is the best way to reduce the app bundle size at the same time supporting multiple devices ?
Based on my investigations,
iOS doesn't allow downloading objective-c/swift code dynamically during runtime, hence the option of downloading the SDKs after the user having installed the app is ruled out.
Would like to get a feedback on the feasibility of the below solution. Also let me know if there is a better solution.
iOS version 8+ support embedded frameworks - Have separate iOS driver
apps for each of the supported devices which just installs the device
SDK as a shared embedded framework so that the parent app can
dynamically link to the shared embedded framework if one that matches
the connected device is available, otherwise force the user to
download the respective driver app.
This question has gone unanswered for a little while, so you may have already figured this out, but no, you cannot make shared embedded frameworks on iOS. Only Apple can do that. All of the frameworks you use must be either provided by Apple or embedded inside your app.

How to find wifi/cellular signal strength in ios [duplicate]

As far as I know it's not possible to scan for hotspots in range and read their bssid and signal strengths. This was possible on iOS 4 by using private APIs and not longer possible on iOS 5 without jailbreak. Even if it were possible, the app would be rejected on the App Store. Is that right?
One company that has an indoor positioning system is claiming they can develop this system in iOS. I know for a fact they are scanning for hotspots and signal strengths and then triangulating the signal on their current Android app.
Are there any alternatives I am missing? Their claiming sounds impossible to me but I would love to hear from the people here. I would like to be ready when they demo (although I am expecting a jailbreak or some kind of mock up)
As far as i know this can still be done (using private APIs, of course) by MobileApple80211 framework.
Stumbler code is a good source of information on how to use this framework.
For iOS 5 you'll need a jailbroken iPhone. Guvener Gokce has a very educational blog post on this: iPhone Wireless Scanner iOS5
Just to update the answer: The MobileApple80211 framework has been replaced by MobileWifi.framework. You will need a jailbroken device (supposedly it can't be done using just private API's, hence on a development/enterprise non-jailbroken device).

Sphero: openConnectionWithSpecificRobot or analog in official SDK for iOS

I don't understand how I can start communication session with specific robot or with all connected (available) robots. I have "availableRobots"=2 and array with both robots. What next? In official SDK for iOS I don't see any method similar to "openConnectionWithSpecificRobot".
Currently the iOS SDK only supports communication with one robot. Prior to iOS 6 Apple only allowed communication with one device of any type. This was supposedly fixed in an iOS 6 update, although we have not had the chance to test this yet. If so we hope to release an update at some point in the future that will support communication with multiple robots on iOS.

Connect iPhone app to access point

I'm trying to create an app that scans available wifi networks and if it is available accesses.
It's possible?
iOS 5 it is possible to scan the network list using private API on a jailbroken device only. This blog post states the following:
Last year Apple has blocked wifi scanners from App Store, however till
iOS5 it was still available for private usage via WiFiManager bundle.
In iOS5, WifiManager bundle no more exists however 80211 functions are
still available via IPConfiguration bundle.
The API you linked provides an open-source tool Stumbler which seems like something you were seeking. The tool is claimed to work under iOS 5.

iOS wifi scan, signal strength

As far as I know it's not possible to scan for hotspots in range and read their bssid and signal strengths. This was possible on iOS 4 by using private APIs and not longer possible on iOS 5 without jailbreak. Even if it were possible, the app would be rejected on the App Store. Is that right?
One company that has an indoor positioning system is claiming they can develop this system in iOS. I know for a fact they are scanning for hotspots and signal strengths and then triangulating the signal on their current Android app.
Are there any alternatives I am missing? Their claiming sounds impossible to me but I would love to hear from the people here. I would like to be ready when they demo (although I am expecting a jailbreak or some kind of mock up)
As far as i know this can still be done (using private APIs, of course) by MobileApple80211 framework.
Stumbler code is a good source of information on how to use this framework.
For iOS 5 you'll need a jailbroken iPhone. Guvener Gokce has a very educational blog post on this: iPhone Wireless Scanner iOS5
Just to update the answer: The MobileApple80211 framework has been replaced by MobileWifi.framework. You will need a jailbroken device (supposedly it can't be done using just private API's, hence on a development/enterprise non-jailbroken device).

Resources