我需要获取android锁定屏幕 Activity 的程序包名称。我已经用谷歌搜索找到了除https://stackoverflow.com/a/16881064/2803557之外什么都没用的东西。
有什么办法可以获取锁屏包名称
最佳答案
您可以通过分析Android日志来确定出现在前台的任何Activity
的程序包名称。例如,如果您打开了Google Maps,则单击设备的“主页”按钮将在日志中显示此信息(我通常按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主页按钮以显示任何应用程序的锁屏时,它永远不会显示正在启动的另一个 Activity 。这使我认为这不是我们理解为典型的
Activity
的东西。如果查看Android源代码KeyguardViewMediator.java的源代码,则会发现一个名为
private void doKeyguardLocked(Bundle options)
的方法。我从经验中知道,更改源以从此方法立即返回将禁用锁屏。 KeyguardViewMediator.java
的源显示它在软件包com.android.keyguard
中,并且我相信这是您正在寻找的软件包。至于动态获取程序包名称,对我来说似乎是不可能的。但是,如果您已经提前知道软件包名称,则无需动态获取它。
我希望这有帮助。