carrier_info_plus
Cellular carrier, SIM and network information for Flutter — dual-SIM aware, and explicit about what modern iOS no longer reports.
- 30-day installs
- 448
- version
- 2.0.3
- likes
- 3
- pub points
- 160/160
install
add it to a project
flutter pub add carrier_info_pluswhy
the problem it solves
`carrier_info`, the package everyone reached for, is unmaintained and still advertises fields that Android and iOS stopped populating years ago. What comes back is a struct of unexplained nulls, with no way to tell a permission the user denied from an answer the OS is never going to give.
how
how it works
Every result carries a `support` block saying what was answerable and why. A missing carrier name on Android with READ_PHONE_STATE denied is recoverable, so prompt for it. The same null on iOS 16+ is permanent — Apple removed CTCarrier, there is nothing to ask for, and the row should simply be hidden. The two are identical in the data and opposite in a UI, and telling them apart is the whole reason the package exists.
The platform split went with it: `getAndroidInfo()` and `getIosInfo()` are now one `get()`. The difference moved out of the type and into the data, which is the better axis, because Android always had the partial-data problem on its own — branching on platform never spared you from handling it, it only made you handle it again, unaided, inside the Android branch.
A `_plus` suffix usually promises a compatible fork. This one says on its first screen that it is not: it is a ground-up rewrite with a different API, because carrying the old fields forward would have meant shipping a contract it could not honour.
what you get
features
- One call for both platforms, returning typed enums rather than stringly-typed fields
- A support block separating a denied permission from an OS that will never answer
- Per-SIM enumeration on dual-SIM Android; radio technology and eSIM support on both
- Declares no permissions of its own — READ_PHONE_STATE stays the app's call
- Swift Package Manager and CocoaPods, AGP 9-ready Gradle, no iOS setup
elsewhere
source and docs
carrier · sim · telephony · cellular · network
next
more packages
- pub.devwidget
adaptive_navbar
A Flutter navigation bar that renders in full on desktop and collapses into a drawer on mobile.
- 30-day installs
- 4,476
- pub.devcli
dart_husky
Git hooks for Dart and Flutter projects — pre-commit, commit-msg, pre-push — in pure Dart.
- 30-day installs
- 1,180
- npmcli
commitguard
Git hooks for Node, JS and TS projects, configured from one YAML file. The Node answer to dart_husky.
- 30-day installs
- 37