Android ロック画面アクティビティのパッケージ名を取得する必要があります。動作していないように見えるhttps://stackoverflow.com/a/16881064/2803557以外は何も見つかりませんでした。
ロック画面のパッケージ名を取得する方法はありますか
Android ロック画面アクティビティのパッケージ名を取得する必要があります。動作していないように見えるhttps://stackoverflow.com/a/16881064/2803557以外は何も見つかりませんでした。
ロック画面のパッケージ名を取得する方法はありますか
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 のホーム ボタンをクリックして任意のアプリからロック画面を表示すると、起動中の別のアクティビティが表示されません。これは、私たちが典型的な として理解しているものではないと思いますActivity
。
Android ソース コードのKeyguardViewMediator.javaのソースを見ると、という名前のメソッドが見つかりますprivate void doKeyguardLocked(Bundle options)
。このメソッドからすぐに戻るようにソースを変更すると、ロック画面が無効になることを経験から知っています。のソースは、それがパッケージにあることをKeyguardViewMediator.java
示しており、com.android.keyguard
これがあなたが探しているパッケージだと思います。
パッケージ名を動的に取得することに関しては、私には不可能のようです。ただし、事前にパッケージ名がわかっている場合は、動的に取得する必要はありません。
これが役立つことを願っています。
すべてのプロセスのリストを取得し、画面ロック アプリのパッケージ名を確認します。
以下はコードです:
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> services = activityManager.getRunningServices(Integer.MAX_VALUE);
long currentMillis = Calendar.getInstance().getTimeInMillis();
Calendar cal = Calendar.getInstance();
for (ActivityManager.RunningServiceInfo info : services) {
cal.setTimeInMillis(currentMillis-info.activeSince);
Log.i("TAG", String.format("Process %s has been running since: %d ms",info.process, info.activeSince));
}
ログキャット:
TAG: Process com.android.systemui has been running since: 86526 ms
それがロック画面です^^
TAG: Process com.qualcomm.telephony has been running since: 68521 ms
TAG: Process com.motorola.ccc has been running since: 57456 ms
TAG: Process com.google.android.music:main has been running since: 26245 ms
TAG: Process com.android.phone has been running since: 29421 ms
TAG: Process com.motorola.ccc has been running since: 52141 ms
TAG: Process system has been running since: 28602 ms
TAG: Process com.motorola.actions has been running since: 74371 ms
TAG: Process com.motorola.ccc has been running since: 59166 ms
TAG: Process com.motorola.process.slpc has been running since: 25483 ms
TAG: Process com.android.systemui has been running since: 30142 ms
TAG: Process com.android.bluetooth has been running since: 22187 ms
TAG: Process system has been running since: 28603 ms
TAG: Process com.google.android.gms.persistent has been running since: 31621 ms
TAG: Process com.android.systemui has been running since: 27361 ms
TAG: Process com.google.android.gms.persistent has been running since: 99678 ms
TAG: Process com.motorola.contacts.preloadcontacts has been running since: 45603 ms
TAG: Process com.google.android.gms.persistent has been running since: 73457 ms
TAG: Process com.google.android.gms.persistent has been running since: 72908 ms
TAG: Process com.google.android.gms.persistent has been running since: 37251