executeUssd method
Executes a USSD code
ussdCode - The USSD code to execute
subscriptionId - (Optional) Subscription ID (SIM slot).
If not provided and there are multiple SIMs, the native selector will be shown.
If there is only one SIM, it is used by default.
Implementation
@override
Future<UssdResponse> executeUssd(
String ussdCode, {
int? subscriptionId,
}) async {
try {
final Map<String, dynamic> arguments = {'ussdCode': ussdCode};
if (subscriptionId != null) {
arguments['subscriptionId'] = subscriptionId;
}
final result = await methodChannel.invokeMethod<Map<Object?, Object?>>(
'executeUssd',
arguments,
);
if (result != null) {
return UssdResponse.fromMap(Map<String, dynamic>.from(result));
} else {
return UssdResponse(
success: false,
errorMessage: 'No response received from native code',
);
}
} on PlatformException catch (e) {
return UssdResponse(success: false, errorMessage: 'Error: ${e.message}');
}
}