【问题标题】:android - how to find the name of the main activity of an application?android - 如何找到应用程序的主要活动的名称?
【发布时间】:2011-05-11 13:06:03
【问题描述】:

例如,我想在代码/命令行中启动 Gmail,但我不知道它的主要活动名称。

am start -n com.google.android.gm/.XXXXX

通过反编译apk可以得到,但是比较难。

【问题讨论】:

    标签: android android-activity


    【解决方案1】:

    这可以在应用程序的清单中找到。

    主要活动是activityintent-filter,其名称为android.intent.action.MAIN

    【讨论】:

      【解决方案2】:

      您可以将手机插入计算机并查看 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 似乎是正确的选择,至少,图标似乎是这样启动的。

      【讨论】:

        【解决方案3】:

        Step1:在命令提示符下启动“adb logcat”。

        Step2:打开应用程序(在模拟器或真机中)

        【讨论】:

          【解决方案4】:

          你不需要知道它的名字,你应该使用implicit intent 并指定操作以及类型和一些附加功能,例如

                      final Intent intent = new Intent();
                      intent.setType("message/rfc822");
                      intent.setAction(Intent.ACTION_SEND);
                      intent.putExtra(Intent.EXTRA_SUBJECT, "Some subject");
          

          系统将搜索可用于运行此意图的组件。

          【讨论】:

            【解决方案5】:

            只需转到 Android 包 n 打开 Android 清单文件 n 检查此活动元素

            <activity>
                <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            </activity>
            

            【讨论】:

              猜你喜欢
              • 2011-09-03
              • 2012-06-17
              • 2014-04-04
              • 1970-01-01
              • 2011-04-21
              • 1970-01-01
              • 2017-08-10
              • 2011-10-25
              • 2016-11-02
              相关资源
              最近更新 更多