WiFi network information and configuration.
Provides access to WiFi network state, connected network info, and (where supported) the ability to scan for nearby networks.
Requires :wifi permission on Android (iOS does not expose WiFi scanning to apps).
Events
WiFi events arrive as:
handle_info({:wifi, :state_changed, %{connected: boolean, ssid: ssid, bssid: bssid, ip: ip}}, socket)
handle_info({:wifi, :scan_result, [%{ssid: ssid, bssid: bssid, rssi: rssi, security: security}]}, socket)iOS: NEHotspotConfigurationManager (limited), CNCopyCurrentNetworkInfo (deprecated but works).
Android: WifiManager, ConnectivityManager.
Summary
Functions
Check if device is connected to WiFi.
Get currently connected WiFi network info.
Disable WiFi (Android only, requires special permissions).
Enable WiFi (Android only, requires special permissions).
Get WiFi IP address (convenience wrapper).
Scan for nearby WiFi networks (Android only).
Types
Functions
@spec connected?() :: boolean()
Check if device is connected to WiFi.
@spec current_network() :: map()
Get currently connected WiFi network info.
Returns:
%{
connected: boolean,
ssid: String.t() | nil,
bssid: String.t() | nil,
ip: String.t() | nil,
rssi: integer | nil
}
@spec disable() :: :ok | {:error, term()}
Disable WiFi (Android only, requires special permissions).
iOS: Not supported.
@spec enable() :: :ok | {:error, term()}
Enable WiFi (Android only, requires special permissions).
iOS: Not supported.
@spec ip_address() :: String.t() | nil
Get WiFi IP address (convenience wrapper).
@spec scan(Dala.Socket.t()) :: Dala.Socket.t()
Scan for nearby WiFi networks (Android only).
Results arrive as :wifi, :scan_result message.
iOS: Not supported by public APIs (will return {:error, :not_supported}).