flutter_internet_signal 0.0.43
flutter_internet_signal: ^0.0.43 copied to clipboard
Package get internet signal using Flutter, the value is dBm.
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_LOCATIONorACCESS_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