← all packages

pub.dev (opens in a new tab)plugin

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_plus

why

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

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