Package selection guidance compiled from public package information, community data, and project usage.
The ussd_advanced package enables direct execution of USSD (Unstructured Supplementary Service Data) codes within Flutter applications on Android and iOS. It supports both single-session and multi-session USSD interactions, allowing users to initiate and manage USSD sessions programmatically. Designed for mobile device integration, it provides a bridge between the app and the device's native USSD capabilities. Ideal for banking, telecom services, and utility apps requiring real-time interaction with network-based services.
Use cases
Mobile banking USSD integration
Telecom service access
Utility bill payments
Real-time customer support
Network service inquiries
Key features
Supports single and multi-session USSD
Direct USSD code execution
Cross-platform Android/iOS compatibility
Simple API for session management
Native device-level USSD access
Suitable for
Financial apps needing USSD
Telecom service providers
Government service portals
Mobile wallet integrations
Apps targeting emerging markets
Considerations
Requires device-level permissions
Limited to devices with USSD support
May not work on all carriers
Depends on native OS implementation
No fallback for unsupported devices
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
ussd_advanced
Run ussd code directly in your application
Usage
Add dependency to pubspec.yaml file
Android
You'll need to add the CALL_PHONE permission and READ_PHONE_STATE to your Android Manifest.
The sendUssd runs the ussd normaly without a response.
The sendAdvancedUssd (single session call) runs ussd in background and gives you the response as a string. It only surports android 8+(SDK 26+). It defaults to sendUssd when the SDK is lower. For multisession USSDs, send the request as one, ie;
The multisessionUssd runs a multi session call giving all the sessions response as String. One can interact with the ussd dialog by sending a message using sendMessage method and canceling the session by calling cancelSession
Selecting SimCard
You can select which simcard to use providing subscriptionId.
-1: is for default phone setting.
Only supports android 6+, and defaults to default if the SDK is lower