Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Make my app launch when secret code entered?

Tags:

android

How would I make my app launch when a secret code, such as *#*#12345#*#* is entered into the dialer?

I couldn't find a solution in the Android docs.

like image 561
Liam W Avatar asked Jul 30 '12 15:07

Liam W


2 Answers

This is how I did it:

I changed my main activity to have no intent-filters:

<activity
            android:name=".ParentTrap"
            android:label="@string/title_activity_parent_trap"
            android:theme="@android:style/Theme.Holo" >
        </activity>

I then made a broadcast receiver with the intent filter action: android.provider.Telephony.SECRET_CODE

I then added data to it. The entire thing is below:

<receiver android:name=".ParentTrap$Launch" >
            <intent-filter>
                <action android:name="android.provider.Telephony.SECRET_CODE" />

                <data
                    android:host="(secret code)"
                    android:scheme="android_secret_code" />
            </intent-filter>
        </receiver>

Once done, make a class (I made the Launch class in my main class, extending BroadCast Receiver), then in the onReceive class, fire an intent to launch the activity.

Then typing *#*#(secret code)#*#* into the dialer will launch the app.

like image 54
2 revs Avatar answered Nov 03 '22 01:11

2 revs


Create a broadcast receiver with this action:

  • ACTION_NEW_OUTGOING_CALL

In the extras you find the dialed number.

Edit: Here is tutorial for broadcast receiver.

like image 38
fklappan Avatar answered Nov 03 '22 01:11

fklappan