Wi-Fi Aware
Securely pair and connect to external devices over peer-to-peer Wi-Fi.
Overview
Wi-Fi Aware™ (also known as Neighbor Awareness Networking or NAN) is a Wi-Fi Alliance™ standard specification that enables devices to securely discover, pair, and communicate with nearby devices without an internet connection or access point. Your app can use the Wi-Fi Aware framework to connect with Wi-Fi Aware certified accessories. The framework offers a secure and standardized way to establish peer-to-peer (P2P) connections between Wi-Fi devices, providing networking capabilities such as:
High-bandwidth and low-latency data transfers
Connections to paired devices that are authenticated and encrypted at the Wi-Fi layer
Simultaneous connections to multiple Wi-Fi Aware devices
Simultaneous use of Wi-Fi Aware devices and a Wi-Fi infrastructure network
Fully peer-to-peer topology, allowing peers to come and go without breaking connections to other peers
The Wi-Fi Aware technology works without the need for Wi-Fi infrastructure networks, cellular links, internet connections, or cloud servers. Your app can pair Wi-Fi Aware devices using AccessorySetupKit or DeviceDiscoveryUI. When paired, your app can create secure, authenticated, and encrypted peer-to-peer connections between paired devices on-demand, using the Wi-Fi Aware and Network frameworks.
Your app may connect to paired Wi-Fi Aware devices whenever it’s running, in both foreground and background states. Your app may get runtime using any of the existing mechanisms on the platform, such as with the BackgroundTasks API.
If you are building a hardware device or accessory that uses Wi-Fi Aware, refer to the Wi-Fi Aware chapter of the Accessory Guide for the requirements to work well with Apple devices.
Topics
Essentials
Building peer-to-peer appsConnecting devices for peer-to-peer Wi-FiAdopting Wi-Fi Awarecom.apple.developer.wifi-awareWiFiAwareServices
Host capabilities
Services to discover
Paired devices
Subscriber
Publisher
WAPublisherListenerWAPublisherListener.ActionWAPublisherListener.DevicesWAPublisherListener.DatapathParameters