tags:

views:

153

answers:

2

I would like an application which is not readily apparent to casual perusal of the Android.

How best to activate it and bring its screen to the fore? Can I detect a special dialing sequence, like *1234#? Or a hotkey combination?

When activated, I guess I can pop up an anonymous screen which does not mention the app, but only asks for a password.

If password is ok, then show the app.

Any suggestions?

+1  A: 

If you're simply trying to hide some type of functionality you could mask the application with something very simple like an app that showed a slide show. You could then listen to key presses or gestures in the mask app and launch the required functionality or application.

Also you could use a service which listens to all sorts of interesting things. If you ran a background service which listened to incoming sms you could start your application by texting yourself a certain code.

a service could also listen for key presses which are not handled by the top level activity.

There are many ways to do this I suppose though the simple masking app is likely the easiest.

Dave.B
A service cannot "listen for key presses which are not handled by the top level activity".
CommonsWare
+1 for hiding it behind an innocuous app., Sneaky!! Me liek!!
Mawg
I really thought that was possible. Thanks for the heads up.
Dave.B
+1  A: 

An extended reply to tstenner's comment.

You can implement a BroadcastReceiver which listens to the Intent 'android.intent.action.NEW_OUTGOING_CALL'. Check the docs for more info!

Do not, however, that your application will still be visible in the package manager, as it should be.

MrSnowflake
+1 for app still visible in package manager. I wonder - if I intercept an outgoing call, in order to check for `*1234#`, can I then abandon the call when I recognize my special dial string? I seem to recall that I can't, so I need to check this.
Mawg
SipDroid does this, so yes it is possible. Though I don't know how :).
MrSnowflake