-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Plugin
connectivity_plus
Use case
Satellite connectivity is now available to end users via carriers such as T-Mobile/SpaceX Starlink Direct to Cell and One NZ/SpaceX in New Zealand, with more carriers planning to launch in 2026. Apps need to know when they are on a satellite connection for the same reason they need to know about metered mobile data - satellite has high latency and constrained bandwidth, and many operations (large file downloads, background sync of media) should be deferred or skipped.
Android and iOS have added new API's to allow developers to detect if they are on a very low bandwidth connection; NWPath.isUltraConstrained, NetworkCapabilities.TRANSPORT_SATELLITE
There are no existing Flutter packages covering this. Developers are currently forced to write their own native plugins.
Proposal
Add satellite to the ConnectivityResult enum, with platform support on Android 15+ and iOS 26+. Older OS versions return the existing result (mobile or none) unchanged.
Fallback behaviour. On Android < 15 and iOS < 26 the new constant should never be emitted. The result should fall through to whatever the existing logic returns (typically mobile or none).
References
- https://developer.android.com/reference/android/net/NetworkCapabilities#TRANSPORT_SATELLITE
- https://developer.android.com/reference/android/net/NetworkCapabilities#NET_CAPABILITY_NOT_BANDWIDTH_CONSTRAINED
- https://developer.apple.com/documentation/bundleresources/entitlements/com.apple.developer.networking.carrier-constrained.app-optimized
One NZ satellite developer guide with sample projects: https://one.nz/why-choose-us/satellite/developer-toolkit/?srsltid=AfmBOorFvO-HomAMDiI5ioX7TZa5ZCGwZ3LiFmE3P3e-gQEVJpfLO-Tz