android - как найти название основной активности приложения? - PullRequest
8 голосов
/ 11 мая 2011

Например, я хочу запустить Gmail в коде / командной строке, но я не знаю его основного имени активности.

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

Он доступен через декомпиляцию apk, но это сложно.

Ответы [ 5 ]

15 голосов
/ 11 мая 2011

Это можно найти в манифесте приложения.

Основным видом деятельности является activity с intent-filter с именем android.intent.action.MAIN.

7 голосов
/ 11 мая 2011

Вы можете подключить свой телефон к компьютеру и посмотреть журнал 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, может показаться правильным выбором, по крайней меревот что, похоже, запускает иконка.

5 голосов
/ 26 февраля 2015

Шаг 1: Запустите «adb logcat» в командной строке.

Step2: открыть приложение (в эмуляторе или на реальном устройстве) enter image description here

4 голосов
/ 11 мая 2011

Вам не нужно знать его имя, вместо этого вы должны использовать неявное намерение и указать действие вместе с типом и некоторыми дополнительными функциями, например

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

Система будет искатькомпоненты, доступные для выполнения этого намерения.

3 голосов
/ 05 марта 2015

Просто зайдите в пакет Android и откройте файл манифеста Android, проверьте этот элемент активности

<activity>
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
</activity>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...