Dala.Connectivity.Wifi (dala v0.0.10)

Copy Markdown View Source

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

security_type()

@type security_type() :: :open | :wep | :wpa | :wpa2 | :wpa3 | :unknown

Functions

connected?()

@spec connected?() :: boolean()

Check if device is connected to WiFi.

current_network()

@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
}

disable()

@spec disable() :: :ok | {:error, term()}

Disable WiFi (Android only, requires special permissions).

iOS: Not supported.

enable()

@spec enable() :: :ok | {:error, term()}

Enable WiFi (Android only, requires special permissions).

iOS: Not supported.

ip_address()

@spec ip_address() :: String.t() | nil

Get WiFi IP address (convenience wrapper).

scan(socket)

@spec scan(Dala.Ui.Socket.t()) :: Dala.Ui.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}).