wifi_info_enhanced 2.1.1
wifi_info_enhanced: ^2.1.1 copied to clipboard
Flutter plugin for getting WiFi information with improved iOS and Android support
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
2.1.1 - 2025-11-14 #
Fixed #
- Fixed compilation error:
NEHotspotNetwork.fetchCurrent()returns optionalNEHotspotNetwork?, not a collection
2.1.0 - 2025-11-14 #
Fixed #
- CRITICAL: Fixed iOS 26 compatibility by replacing deprecated
CNCopyCurrentNetworkInfowithNEHotspotNetwork.fetchCurrent() CNCopyCurrentNetworkInfowas deprecated in iOS 26 and always returnsnil, breaking WiFi detection- Now uses modern NetworkExtension API for iOS 13+ (minimum supported iOS version is 15)
Changed #
- iOS: Replaced
CNCopyCurrentNetworkInfowithNEHotspotNetwork.fetchCurrent()from NetworkExtension framework - iOS: Updated
getCurrentWifiInfo()to use async/await pattern for modern API - Improved error handling for network information retrieval
Technical Details #
- Added
import NetworkExtensionto iOS plugin NEHotspotNetwork.fetchCurrent()is available from iOS 13+ and works on all supported versions (iOS 15+)- Maintains backward compatibility with existing API surface
- No breaking changes to public API
2.0.1 - 2025-10-25 #
Fixed #
- CRITICAL: Fixed Android Gradle Plugin 8.x compatibility by adding required
namespacein build.gradle - Updated Android Gradle Plugin to 8.6.1
- Updated Kotlin to 2.2.0
- Updated compileSdk to 34
- Updated Java compatibility to version 17
- Simplified build.gradle structure for better maintainability
Technical Details #
- Added
namespace = 'team.moroz.wifi_info_enhanced'to android/build.gradle - Removed deprecated buildscript and rootProject.allprojects blocks
- Updated kotlin-stdlib-jdk8 to version 2.2.0
- This fixes the "Namespace not specified" error when using AGP 8.x
2.0.0 - 2025-10-25 #
Changed #
- BREAKING: Replaced three separate methods with single
getWifiInfo()method - BREAKING: Removed
getWifiName(),getWifiBSSID(), andgetWifiIPAddress()methods - BREAKING: New API returns structured
WifiInfoobject instead of individual values - BREAKING: Introduced
WifiAvailabilityenum for type-safe status checking - Eliminated magic strings for different WiFi states
- Improved type safety and API consistency
Added #
WifiAvailabilityenum with states: available, restrictedByOs, locationDisabled, permissionDenied, notConnected, unknownWifiInfoclass with comprehensive WiFi connection informationgetWifiInfo()method returning complete WiFi state information- Type-safe status checking with
isAvailableandisConnectedproperties - Detailed availability reasons for better error handling
Migration Guide #
// OLD API (v1.x)
final ssid = await WifiInfoEnhanced.getWifiName();
final bssid = await WifiInfoEnhanced.getWifiBSSID();
final ip = await WifiInfoEnhanced.getWifiIPAddress();
// NEW API (v2.0+)
final wifiInfo = await WifiInfoEnhanced.getWifiInfo();
if (wifiInfo.isAvailable) {
final ssid = wifiInfo.ssid;
final bssid = wifiInfo.bssid;
}
final ip = wifiInfo.ipAddress;
Technical Details #
- Android: Unified method returns Map with availability, ssid, bssid, ipAddress
- iOS: Unified method returns Dictionary with availability, ssid, bssid, ipAddress
- Both platforms maintain existing permission handling logic
- Enhanced error reporting with specific availability reasons
1.1.0 - 2025-10-24 #
Changed #
- BREAKING: Removed
permission_handlerdependency - permissions now handled natively - BREAKING: Removed
requestPermissionparameter fromgetWifiName()andgetWifiBSSID()methods - BREAKING: Removed public methods
checkPermissionStatus()andrequestPermissions() - Simplified API - all permission requests are now handled automatically by native code
- Improved Android support with native permission handling via ActivityAware interface
- Updated description to reflect Android support
Added #
- Full Android platform support with automatic permission handling
- Native permission request flow on Android (matching iOS behavior)
- Comprehensive README documentation for both iOS and Android platforms
Fixed #
- Removed debug print statements from iOS code
- Improved consistency between iOS and Android permission handling
Technical Details #
- Android: Implemented ActivityAware interface for runtime permission requests
- iOS: Maintained existing native permission handling via CLLocationManager
- Both platforms now follow the same permission flow pattern
- No external dependencies required
1.0.0 - 2025-10-17 #
Added #
- Initial release of wifi_info_enhanced plugin
- Support for iOS platform only
- Get current WiFi network name (SSID)
- Get WiFi BSSID (MAC address)
- Get device IP address in WiFi network
- Improved iOS 13+ support with location permissions
- Comprehensive error handling with null safety
- Complete documentation and README
Technical Details #
- iOS: Uses native iOS APIs to access WiFi information
- iOS 13+ compatibility with automatic location permission handling
- Cross-platform API design (Android not implemented in this version)
- Proper error handling and exception management
- Null-safe return values for unavailable information
Platform Support #
- ✅ iOS: Full support with location permission handling
- ❌ Android: Not implemented (focus on iOS enhanced functionality)
iOS Requirements #
- iOS 13+ requires location permissions to access WiFi information
- Automatic permission request handling
- Graceful degradation when permissions are denied