【发布时间】:2011-05-11 13:06:03
【问题描述】:
例如,我想在代码/命令行中启动 Gmail,但我不知道它的主要活动名称。
am start -n com.google.android.gm/.XXXXX
通过反编译apk可以得到,但是比较难。
【问题讨论】:
例如,我想在代码/命令行中启动 Gmail,但我不知道它的主要活动名称。
am start -n com.google.android.gm/.XXXXX
通过反编译apk可以得到,但是比较难。
【问题讨论】:
这可以在应用程序的清单中找到。
主要活动是activity 和intent-filter,其名称为android.intent.action.MAIN。
【讨论】:
您可以将手机插入计算机并查看 DDMS 日志,其中会打印应用程序启动,例如:
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
所以,com.google.android.gm/.ConversationListActivity 似乎是正确的选择,至少,图标似乎是这样启动的。
【讨论】:
Step1:在命令提示符下启动“adb logcat”。
Step2:打开应用程序(在模拟器或真机中)
【讨论】:
你不需要知道它的名字,你应该使用implicit intent 并指定操作以及类型和一些附加功能,例如
final Intent intent = new Intent();
intent.setType("message/rfc822");
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_SUBJECT, "Some subject");
系统将搜索可用于运行此意图的组件。
【讨论】:
只需转到 Android 包 n 打开 Android 清单文件 n 检查此活动元素
<activity>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</activity>
【讨论】: