Hi,
For my iOS app, I want to temporarirly connect to a in-house Wifi accessory. The iOS app will exchange some messages to configure the accessory and Wifi accessory does not need a connection to the internet.
Based on the other post, NEHotspotConfiguration can be used to programmatically connect to a wifi network. However, iOS ask the authorization "Wants to Join Wi-Fi Network".
I have following questions:
-
Can we Wireless Accessory Configuration (WAC) for the same interaction? And in this case, can we silently connect to the accessory using Wifi without user having to authorize the connection?
-
If WAC is used for this application, do we have to go through MFi certification? And what is estimated cost for this certification? Do we pay a one time fee or per device/app installation fee? The device is usb peripheral with a built-in wifi module.
Thanks for the clarification
Can we Wireless Accessory Configuration (WAC) for the same interaction? And in this case, can we silently connect to the accessory using Wifi without user having to authorize the connection?
No, I don't think it would really work for this. WAC is used to securely transfer existing Wi-Fi credentials to an accessory and, while that does involve the iOS device connecting to the accessories hotspot, that process isn't really something your app has an opportunity to interact with.
If WAC is used for this application, do we have to go through MFi certification?
Yes, your accessory would need to be certified.
And what is estimated cost for this certification? Do we pay a one time fee or per device/app installation fee? The device is usb peripheral with a built-in wifi module.
If you're interested in more details about this, then you should join the MFi program.
However, going back to here:
Based on the other post, NEHotspotConfiguration can be used to programmatically connect to a wifi network. However, iOS ask the authorization "Wants to Join Wi-Fi Network".
While NEHotspotConfiguration is a better option for Wi-Fi accessories than the alternative (fighting with the Wi-Fi settings pane), the naming limitation and being forced to present the connection dialog EVERY time have always been problematic. That's why introduced "AccessorySetupKit" in iOS 18.
"AccessorySetupKit" basically allows your app to be "paired" with a Wi-Fi (or bluetooth) accessory, creating a persistent relationship between your accessory and that app. In the case of Wi-Fi accessories, that relationship then allows you to use NEHotspotConfiguration as you have in the past, except the system will no longer present the approval dialog. In concrete terms, your app will guide the user through a pairing process, after which it can ask the system to connect again later without additional user consent/interaction.
One minor note on the API documentation:
-
The documentation tends to read as if the focus was on bluetooth (which the same framework handles), but that's simply because the bluetooth process is the more complicated case, not because of any issue with it's Wi-Fi support.
-
AccessorySetupKit is about getting the users consent to create a persistent relationship between your app and a specific accessory. It does NOT handle any of the actual connection process. The actual connection process is still handled through our existing APIs. For Wi-Fi, that is still NEHotspotConfiguration.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware