Question

I'm developing an Android application, i have a service running in background that i want to lauch it by introducing a custom ussd number. For example when i call #12345# my service starts.Thank you in advance

Was it helpful?

Solution

You can register a BroadcastReceiver in your manifest that listens for android.provider.Telephony.SECRET_CODE intents. You also specify the secret code in the manifest.

For example, this manifest entry registers MyBroadcastReceiver for the secret code *#*#12345#*#*.

<receiver android:name="MyBroadcastReceiver">
    <intent-filter>
        <action android:name="android.provider.Telephony.SECRET_CODE"/>
        <data android:scheme="android_secret_code" android:host="12345"/>
    </intent-filter>
</receiver>

MyBroadcastReceiver should look something like this:

public class MyBroadcastReceiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
        // Create an intent to start your Service.
    }
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top