@Ty221 They're currently not helpful for me, because I need variants, which can be used with 1 device (you suggested sending sms and calling) and your web browser variant has been already suggested by "nandeesh" in comments. But, as you see, your variants are helpful for community, so continue to post more of them here.
–
janotFeb 3 '13 at 15:17

@janot please write in your question : " I need only variants which can be used on one device ". We don't know what do you want to receive. Sorry for my bad English but I am not English speaker
–
Ty221Feb 3 '13 at 16:36

I have edited Arpan's post, i added link about Gesture Search in Android® .

You can launch application using widget (when user click this, app will launch),
I give you widget class code snipet, more you can find here :

package com.helloandroid.countdownexample;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
public class CountdownWidget extends AppWidgetProvider {
@Override
public void onDeleted(Context context, int[] appWidgetIds) {
//called when widgets are deleted
//see that you get an array of widgetIds which are deleted
//so handle the delete of multiple widgets in an iteration
super.onDeleted(context, appWidgetIds);
}
@Override
public void onDisabled(Context context) {
super.onDisabled(context);
//runs when all of the instances of the widget are deleted from
//the home screen
//here you can do some setup
}
@Override
public void onEnabled(Context context) {
super.onEnabled(context);
//runs when all of the first instance of the widget are placed
//on the home screen
}
@Override
public void onClick() {
//your code to launch application...
}
@Override
public void onReceive(Context context, Intent intent) {
//all the intents get handled by this method
//mainly used to handle self created intents, which are not
//handled by any other method
//the super call delegates the action to the other methods
//for example the APPWIDGET_UPDATE intent arrives here first
//and the super call executes the onUpdate in this case
//so it is even possible to handle the functionality of the
//other methods here
//or if you don't call super you can overwrite the standard
//flow of intent handling
super.onReceive(context, intent);
}
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
//runs on APPWIDGET_UPDATE
//here is the widget content set, and updated
//it is called once when the widget created
//and periodically as set in the metadata xml
//the layout modifications can be done using the AppWidgetManager
//passed in the parameter, we will discuss it later
//the appWidgetIds contains the Ids of all the widget instances
//so here you want likely update all of them in an iteration
//we will use only the first creation run
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
}

check if Headphones are plugged in

Whenever Headphones are plugged in an intent (ACTION_HEADSET_PLUG) will be fired. Check for this via BroadcastReceiver and start Acitivity