要获取最近打开的窗口,可以使用ActivityManager
类来获取应用程序的活动任务列表。以下是一个示例代码,演示如何获取最近打开的窗口:
import android.app.ActivityManager;
import android.content.Context;
import android.content.pm.PackageManager;
import java.util.List;
public class RecentWindowsUtil {
public static String getRecentWindow(Context context) {
ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
// 获取活动任务列表
List recentTasks = activityManager.getRecentTasks(1, ActivityManager.RECENT_IGNORE_UNAVAILABLE);
if (recentTasks != null && recentTasks.size() > 0) {
ActivityManager.RecentTaskInfo taskInfo = recentTasks.get(0);
PackageManager packageManager = context.getPackageManager();
// 获取应用程序名称
String appName = "";
try {
appName = (String) packageManager.getApplicationLabel(packageManager.getApplicationInfo(taskInfo.baseIntent.getComponent().getPackageName(), PackageManager.GET_META_DATA));
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
// 获取窗口标题
String windowTitle = taskInfo.description != null ? taskInfo.description.toString() : "";
return appName + " - " + windowTitle;
}
return "";
}
}
要使用此代码,只需调用getRecentWindow(Context)
方法,并传递应用程序的上下文作为参数。该方法将返回最近打开的窗口的名称。请注意,此方法只返回最近打开的窗口的信息,如果没有最近打开的窗口,则返回空字符串。