For example, I want to start Gmail in code/command line, but I don\'t know its main activity name.
am start -n com.google.android.gm/.XXXXX
Step1: Start "adb logcat" in command prompt.
Step2: Open the app (either in emulator or real device)
You can plug your phone into the computer and look at the DDMS log, application launches are printed there, e.g:
05-11 09:19:15.725: INFO/ActivityManager(96): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x2000000 cmp=com.google.android.gm/.ConversationListActivity bnds=[125,410][235,540] } from pid 2457
So, com.google.android.gm/.ConversationListActivity
, would seem like the right choice, at least, that's what the icon seems to launch.
This can be found in the application's manifest.
The main activity is the activity
with the intent-filter
whose name is android.intent.action.MAIN
.
You don't need to know it's name, instead you should use implicit intent and specify action along with type and some extras, for example
final Intent intent = new Intent();
intent.setType("message/rfc822");
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_SUBJECT, "Some subject");
System will search for components available to run this intent.
Just go to Android package n open Android Manifest File n check out this activity element
<activity>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</activity>