This question already has answers here:
How to switch between wi-fi networks at runtime (programmatically) in iPhone app
(3 answers)
Closed 9 years ago.
i want to make an app which read a QR code that contains the information of the wifi network, with this data i want to connect automatically to the wifi. I have read something about CaptiveNetwork but i can't find anything.
I want to know if that is posible to do in iOS? if it can how?
Thaks
The API used to switch networks or connect to a new one is currently private.
If you plan to use the app on a jailbroken device check this out:
https://github.com/devinshively/wifiAssociate
iOS apps are sandboxed, and as such various functionality is unavailable to the app. Apple has no APIs for doing this within an app, because they don't want an app to be able to make changes to things like this and other system settings.
You have a couple possible options:
Display the wifi network information from the QR code and instruct the user how to go to the settings app and put it in.
Release your app for jailbreak devices in the Cydia app store, because once the device is jailbroken you can do stuff outside of your sandbox.
Generally, when Apple doesn't want you to do something on iOS, you have little choice but to accept that.
Related
As per my requirement I have to connect to a WiFi sharing device(own company product) with an iOS app. In iOS 11 I have achieved it by using NEHotspotConfigurationBut I am not able to achieve it in iOS 9 and iOS 10. WiFi device is having an ssid(fixed) and iOS app also configured with it. To connect to this device I need to use device ssid only. I have searched a lot for this solution and my findigs are
It's not possible due to security risks involved in it.
Through private api Apple80211 it is possible but you can't do this, at least not if you want to be able to publish on the App Store.
NEHotspotHelper it is possible but need to get entitlements from Apple for that need to send mail and wait till response.
Is anyone know any way like how to tackle this problem without going for third approach(above) by using only ssid in language swift 3.
I'd like to know if there is a way to send some data from my iphone to my apple tv.I'll explain:I want to make an app for my apple tv and extend this app to my iphone.Using the extension in running on the iphone you should send some data to my app in running on my apple tv.Sending data it should not be through wi-fi but using for example the bluethoot.How should I do to build this comunication?Can you explain to me how to do or link me some resources?Thanks to all!
Ps. sorry for my english!
The MultipeerConnectivity framework should allow you to do this. It's available in the SDK and supported by both tvOS and iOS.
The advantage is that you don't have to chose what type of connection the devices use. It supports both WiFi and BT. But if you don't want to use WiFi because wifi is not available, it can by default create a peer to peer wifi network between devices.
https://developer.apple.com/reference/multipeerconnectivity
And also, here https://www.hackingwithswift.com/example-code/system/how-to-create-a-peer-to-peer-network-using-the-multipeer-connectivity-framework is a good tutorial.
This question already has answers here:
How to programmatically connect to a WiFi network given the SSID and password
(9 answers)
Closed 5 years ago.
is it possible to make an application connect to a wifi spot in ios, provided that the app knows the Name/SSID and password.
Contrary to what you see here and other places, you can do it. But it's not pretty. It's an enterprise admin thing, but anyone can do it. Look up "Connection Profiles." Comcast does this in their iOS app to setup their hotspots for you, for example.
Basically, it's an XML document that you get the device to ingest via Safari or Mail. There's a lot of tricks to it and the user experience isn't great, but I can confirm that it works in iOS 10 and it doesn't require jailbreaking. You use Configurator to generate the XML, and I suggest this thread for serving it, and this blog for querying if it's installed.
If you are not going to submit the app to the Appstore, then yes, you can do that.
You'll need a jailbroken device.
here are the details:
Where do I find iOS Obj-C code to scan and connect to wifi (private API)
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 5 years ago.
Improve this question
How can I make a Bluetooth Mac app that connects with an iOS app and sends messages ?
Or an iOS app that connects with a Mac app via a local WiFi network ?
NOTE: this answer is now outdated as with the introduction of CoreBluetooth (Bluetooth LE v4) since iOS6 and OSX 10.7 any iOS device is open to any kind of communication with any other BLE compatible device, either a Mac or PC or external hardware.
The answer below is still valid if you cannot support BLE, due to old hw or specific requirements (e.g. required bandwidth)
As far as I know, this is almost impossible. Bluetooth connection between iOS devices is well supported with the GameKit framework but there is no support for connection with other OSes, OSX included. The only connection between Mac and iPHone I have ever seen is with the hotspot feature (when it works).
Consider for example the Keynote Remote app. This app allows you to control a Keynote presentation using your iPhone as a remote. It allows this control when the two devices are Keynote-paired on the WiFi, but this connection is not allowed using Bluetooth, while with Bluetooth you can control a Keynote presentation between two iOS devices. And you can find this statement in Apple tech note 2152:
An important consequence of the first point is that Bluetooth peer-to-peer networking can only be used to communicate between iOS devices; you can't use it, for example, to communicate between an iOS device and a computer running Mac OS X.
As far as the WiFi question (I forgot to reply to it in my first question) essentially you to kind of problems to solve: discoverability and data transfer. In order to determine if two devices are in the same network, you can use the Bonjour protocol. Essentially one of the machines publish itself as service-provider for a specific service (you can create your own service: e.g. "_mytype._myprotocol") and the would-be client will search for a server. Besides Bonjour takes care of other things like addressing and DNS without the two apps to know the details of the local network they are in. This is explained in Apple docs here: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/NetServices/Articles/about.html
Note that Bonjour is at the base of features like AirPlay (Apple TV), AirPrint and probably also AirDrop but it is supported by a lot of devices, e.g. some NAS. In the SampleCodes section of the Apple developers site you will find a great example, called "BonjourWeb" that shows how service discovery works. You can easily try it in your iPhone simulator or device and if you have some Bonjour-enabled device you will see it in the list.
The second problem of course is then real data communication between the two devices, is up to you to define a custom client/server or use a standard web-server based approach. This depends on the application and the data flow. The first approach is better as it is highly customized, you must study the NetworkStreams concepts and check out the SimpleNetworkStreams code in the apple library (this is a simple communication app between a Mac and an iPhone; not always working but it is a good starting point)
I was wondering, if there is a way to use IPhone as an HID device, with some other device like PS3. I checked out the Bluetooth specification and IOS Devices do support HID Profile. So I thought it would be easy to pair my iPhone using passkey mechanism and should be able to start using my iPhone as keyboard or mouse without much hassle. But I found very soon that this assumption is naive and I need to develop custom solution.
I was initially thinking about using GameKit framework, but I think it only works between two compatible IOS Devices. If I want to extend this capability, then I have to use iPhone External Accessory API .In my analysis, I also found that iPhone will only communicate and pair with devices that are licensed by Apple. (Made for iPhone\iPod program). Does it mean that, if I want to use iPhone with another device, I need to get that device approved by Apple. ( Which will not surprise me one bit). Also if someone could point me to more detailed documentation on this, that will also be helpful.( What is an MFI developer board ??)
I do not want a solution that needs me to jailbreak an iPhone. (or any solution that will disqualify my app by Apple).
So to summarize:
1- Please validate my findings, correct them if they are wrong?
2a- How does External Accessory API Work?
b- Can I use this to connect to third party accessories ? (or is this only for accessory developers).
3- Or is there a better solution without using External Accessory API?
Please provide supportive documentation or link if you can. Thank You.
You are unlikely to get on the External accessory program from apple unless you are a big company ( you can try, but I have read this a number of places) . iPhones use a proprietary Bluetooth interface that and hardware must also implement this interface, so not much chance of getting it to connect to any other hardware directly.
Most apps like this (Remote Mouse) for example, connect to your wifi network, and have another application installed on your computer. The iphone can then talk to this application over the wi-fi network, but not bluetooth. I would suggest that the only way I can see this would be possible to to create the server app that you install on a computer on the wi-fi network that then in turn controls the 3rd party device if there is an API that you can use from the desktop app to control the 3rd party device.
This is just what I have found when I researched about this for making an app for iPhone to control a bluetooth watch. I had to jailbreak in the end to replace the bluetooth stack on the iPhone with one that could connect to any hardware device. Not limited by apple.