Вы можете определить имя пакета для любого Activity
, который выходит на передний план, анализируя журналы Android. Например, если у вас открыт Google Карты, нажатие на кнопку «Домой» устройства покажет это в журнале (я обычно фильтрую строку ActivityManager
).
START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME]
flg=0x10200000 cmp=com.android.launcher/com.android.launcher2.Launcher}
Это показывает, что имя пакета домашнего экрана Activity
является com.android.launcher
Однако, когда я нажимаю мою кнопку Nexus 4 домой, чтобы показать LockScreen из любого приложения, он никогда не показывает другую активность запускаемые , Это заставляет меня думать, что это не то, что мы понимаем как типичный Activity
.
Если вы посмотрите на источник для KeyguardViewMediator.java исходного кода Android, вы найдете метод с именем private void doKeyguardLocked(Bundle options)
. По опыту я знаю, что смена источника для немедленного возврата из этого метода приведет к отключению блокировки экрана. Источник для KeyguardViewMediator.java
показывает, что он находится в пакете com.android.keyguard
, и я считаю, что это тот пакет, который вы ищете.
Что касается динамического получения имени пакета, это не представляется мне возможным. Но, если вы уже знаете имя пакета раньше времени, тогда нет необходимости получать его динамически.
Надеюсь, это поможет.
блокировка экрана имя упаковки: com.android.systemui Если вы хотите показать что-то на экране блокировки, есть и другие способы для этого. – abhishesh