wifi_status 0.1.0 copy "wifi_status: ^0.1.0" to clipboard
wifi_status: ^0.1.0 copied to clipboard

A Flutter package to check Wi-Fi connection status and monitor network changes in real-time with WifiState enums, live streams, and UI widgets.

Wi-Fi Status (wifi_status) #

A fast, lightweight, and feature-rich Flutter package to check Wi-Fi connection status and monitor network connectivity changes in real-time.

Pub Version License: MIT


Features #

  • ๐Ÿ“ถ Wi-Fi & Network Status Check: Instantly check if the device is connected to Wi-Fi, Mobile Data, or Disconnected.
  • โšก Real-Time Stream Monitoring: Listen to connectivity updates as they happen with onStateChanged.
  • ๐ŸŽฏ Strongly Typed WifiState Enum: Type-safe connection states (connected, disconnected, mobileData, other, unknown) with helper getters (.isWifi, .isMobile, .isConnected).
  • ๐Ÿงฉ UI Helper Widgets:
    • WifiStatusBuilder: Automatically rebuilds UI when connectivity updates.
    • WifiStatusListener: Triggers side-effect callbacks (onConnected, onDisconnected) without rebuilding widgets.
    • WifiStatusIcon & WifiStatusBanner: Plug-and-play UI widgets.
  • ๐Ÿงช 100% Mockable & Testable: Pass custom Connectivity providers for unit testing.
  • ๐Ÿ”„ Backward Compatible: Supports legacy WifiStatus.getWifiStatus() string methods.

Installation #

Add wifi_status to your pubspec.yaml:

dependencies:
  wifi_status: ^0.1.0

Or run:

flutter pub add wifi_status

Platform Setup #

Android Setup #

Add network state permissions inside <manifest> in android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

iOS Setup #

No special permissions required for basic Wi-Fi status check.


Usage Guide #

1. One-Time Connection Check #

import 'package:wifi_status/wifi_status.dart';

// Check typed state
WifiState state = await WifiStatus.checkState();

if (state.isWifi) {
  print('Connected to Wi-Fi!');
} else if (state.isMobile) {
  print('Using Mobile Data');
} else if (state.isDisconnected) {
  print('No network connection');
}

// Or check boolean directly
bool isWifi = await WifiStatus.isWifiConnected();

2. Live Stream Listener #

Listen to network connectivity updates in real-time:

// Stream emitting WifiState
WifiStatus.onStateChanged.listen((WifiState state) {
  print('Current connection state: ${state.label}');
});

// Stream emitting boolean (Wi-Fi connected or not)
WifiStatus.onWifiConnectedChanged.listen((bool isConnected) {
  print('Wi-Fi active: $isConnected');
});

3. Reactive UI with WifiStatusBuilder #

Rebuild UI automatically whenever Wi-Fi status changes:

WifiStatusBuilder(
  builder: (context, WifiState state) {
    if (state.isWifi) {
      return Text('Connected to Wi-Fi', style: TextStyle(color: Colors.green));
    } else {
      return Text('Not on Wi-Fi (${state.label})', style: TextStyle(color: Colors.red));
    }
  },
)

4. Side Effects with WifiStatusListener #

Trigger SnackBars or dialogs when status changes:

WifiStatusListener(
  onConnected: () {
    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(content: Text('Connected to Wi-Fi!'), backgroundColor: Colors.green),
    );
  },
  onDisconnected: () {
    ScaffoldMessenger.of(context).showSnackBar(
      SnackBar(content: Text('Disconnected from Wi-Fi!'), backgroundColor: Colors.red),
    );
  },
  child: MyScreenBody(),
)

5. Plug-and-Play UI Widgets #

// Wi-Fi Icon that updates automatically
WifiStatusIcon(size: 28)

// Status Banner widget
WifiStatusBanner()

Unit Testing #

You can mock Connectivity using dependency injection:

final mockConnectivity = MyMockConnectivity();
final wifiStatus = WifiStatus(connectivity: mockConnectivity);

WifiState state = await wifiStatus.getState();

License #

This project is licensed under the MIT License - see the LICENSE file for details.

2
likes
150
points
95
downloads

Documentation

API reference

Publisher

verified publishermahafujerrahman.xyz

Weekly Downloads

A Flutter package to check Wi-Fi connection status and monitor network changes in real-time with WifiState enums, live streams, and UI widgets.

Repository (GitHub)
View/report issues

Topics

#wifi #connectivity #network #wifi-status

License

MIT (license)

Dependencies

connectivity_plus, flutter

More

Packages that depend on wifi_status