How to run USSD commands on android?

19,408

Solution 1

You can run USSD codes in Android devices but you would be unable to parse the result in your application. This feature might be added to the Android SDK in the future but for now, you would have to look for an alternative.

USSD can be run using simple Call intents. See Example:

String ussdCode = "*" + "123" + Uri.encode("#");
startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + ussdCode)));

as mentioned in the comments phone call permission is also required

<uses-permission android:name="android.permission.CALL_PHONE" /

Solution 2

You can use "%23" instead of "#" :

String ussdCode = "*" + "123"+"%23";
startActivity(new Intent("android.intent.action.CALL", Uri.parse("tel:" + ussdCode)));

You should also add permission to your Manifest file:

<uses-permission android:name="android.permission.CALL_PHONE" />
Share:
19,408

Related videos on Youtube

Michael Frans
Author by

Michael Frans

Updated on June 04, 2022

Comments

  • Michael Frans
    Michael Frans almost 2 years

    has anyone know how to runs USSD command for checking phone's credit balance (the number is *123#) and get the result (the credit balance) for further processing?? thankss

  • S.Thiongane
    S.Thiongane about 10 years
    can replace "android.intent.action.CALL" by Intent.ACTION_CALL
  • Emad Aghaei
    Emad Aghaei almost 9 years
    you should call permission in to your monifest by adding this line: <uses-permission android:name="android.permission.CALL_PHONE" />
  • Srishti Roy
    Srishti Roy almost 9 years
    is there no way to parse the ussd result,i need to capture the balance of my phone at regular interval,