Configure Wi-Fi Accessory so that Connected Devices Automatically Use Cellular

I'm working on an iPhone-only app that connects to an external Wi-Fi accessory that's similar to a GoPro.

When connected to the accessory's Wi-Fi network, the app is communicating with the accessory over a TCP connection, but the accessory does not have its own internet connection / should not share it with its clients.

How can I configure this accessory so that iOS immediately recognizes that it has no internet connection and continues using cellular, showing the exclamation point over the current Wi-Fi in Settings?

Accepted Reply

If the accessory is acting as a DHCP server...
...it may be sufficient for it to provide an empty "Default Gateway" (which Apple refer to as "Router") IP Address.

The iOS device can then detect that the WiFi has no route to the Internet, and will use the cellular connection instead.

Replies

When connected to the accessory's Wi-Fi network, the app is communicating with the accessory over a TCP connection, but the accessory does not have its own internet connection / should not share it with its clients. How can I configure this accessory so that iOS immediately recognizes that it has no internet connection and continues using cellular

This is a difficult one; essentially there is no API to do what you are looking for. I have heard that there are hardware specific tags (Interworking Tag) that can be emitted to the iOS device to let the iOS device know that there is no connection to the wider internet through it's Wi-Fi association, but I do not know if this will default all other connections to cellular in the meantime. Essentially, I would recommend that you try to communicate with the accessory only the info needed over Wi-Fi / TCP and then tear down the association.

Matt Eaton
DTS Engineering, CoreOS
meaton3@apple.com

If the accessory is acting as a DHCP server...
...it may be sufficient for it to provide an empty "Default Gateway" (which Apple refer to as "Router") IP Address.

The iOS device can then detect that the WiFi has no route to the Internet, and will use the cellular connection instead.