Skip to content

fellipeptc/flutter_internet_signal

Repository files navigation

Flutter Internet Signal

A Flutter plugin for Android to retrieve mobile and Wi-Fi signal information.

Returns the received signal strength indicator (RSSI) of the current network in dBm.
The dBm value is negative — the closer to 0, the better the signal (e.g., -30 is excellent, -100 is poor).

Platform Status
Android ✅ Supported (21+)
iOS 🛠️ In development

✨ New method - getWifiSignalInfo()

  • Deprecated: getWifiSignalStrength() and getWifiLinkSpeed()
  • New: getWifiSignalInfo() method returns the class WifiSignalInfo.

WifiSignalInfo

Property Type Description
dbm int? Wi-Fi signal strength (in dBm)
mbps int? Wi-Fi link speed (in Mbps)
frequency int? Wi-Fi frequency (in MHz)
ssid String? Wi-Fi network name (SSID)
bssid String? MAC address of the access point (BSSID)
ip String? Local IP address

⚠️ About SSID and BSSID Limitations

Due to privacy restrictions introduced in recent Android versions, SSID and BSSID may not be returned correctly under certain conditions.

  • The device is running Android 8.0 (API 26) or higher without location permissions (ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION).
  • Location services must be enabled on the device (starting from Android 10+), even if the app has location permissions.
  • The device is not connected to a real Wi-Fi network, or the network is hidden

Expected behavior

In these cases, SSID may return null or "unknown ssid", and BSSID may return a placeholder like "02:00:00:00:00:00".

Android

Change the minimum Android sdk version to 21 (or higher) in your android/app/build.gradle file.

minSdkVersion 21

Add permissions in your manifest file for mobile and wifi network:

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

Example

import 'package:flutter_internet_signal/flutter_internet_signal.dart';

void main() async {
  final FlutterInternetSignal internetSignal = FlutterInternetSignal();
  final mobileSignal = await internetSignal.getMobileSignalStrength();
  final wifiSignal = await internetSignal.getWifiSignalInfo();
  print('Result dBm -> $mobileSignal');
  print('Result wifi info -> ${wifiSignal.toString()}');
}

For a more elaborate usage example, build and debug main.dart

About

Package get internet signal using Flutter, the value is dBm.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •