0

パッケージ情報を使用してホーム アクティビティが起動/表示されることを検出する方法。このコードでパッケージ名を取得するように:

ActivityManager.RunningTaskInfo localRunningTaskInfo = (ActivityManager.RunningTaskInfo)((ActivityManager)context.getSystemService("activity")).getRunningTasks(1).get(0);
String str1 = localRunningTaskInfo.topActivity.getPackageName();
String str2 = localRunningTaskInfo.topActivity.getClassName();

これにより、すべてのアプリケーションのパッケージ名とクラス名が取得されます。家を検出する方法が表示されますか?

4

1 に答える 1

0

ActivityManagerを使用してこれを取得できます。サンプルコードは次のとおりです。

ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);


 // get the info from the currently running task
 List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1);

 Log.d("topActivity", "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClassName());

 ComponentName componentInfo = taskInfo.get(0).topActivity;
 String packageName = componentInfo.getPackageName();

マニフェストには次の権限が必要です。

uses-permission android:name="android.permission.GET_TASKS"

サンプルプロジェクト

logcat から、どのアクティビティが起動されているかを確認できます。

于 2013-10-24T11:01:23.450 に答える