android Java代码实现 获取所有的打开过的应用
时间: 2024-02-27 17:56:42 浏览: 18
你可以使用`ActivityManager`类的`getRecentTasks()`方法来获取最近使用的应用程序列表。以下是一个示例代码:
```java
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RecentTaskInfo> recentTasks = activityManager.getRecentTasks(Integer.MAX_VALUE, ActivityManager.RECENT_IGNORE_UNAVAILABLE);
for (ActivityManager.RecentTaskInfo task : recentTasks) {
Intent intent = task.baseIntent;
if (intent != null) {
String packageName = intent.getComponent().getPackageName();
CharSequence label = null;
try {
label = getPackageManager().getApplicationLabel(getPackageManager().getApplicationInfo(packageName, PackageManager.GET_META_DATA));
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
Log.d("Recent Apps", "Package name: " + packageName + ", App label: " + label);
}
}
```
此代码将打印最近打开的所有应用程序的包名和标签。请注意,由于安全原因,只有系统应用程序可以使用`getRecentTasks()`方法获取最近打开的应用程序列表。如果你的应用程序不是系统应用程序,那么你只能获取你自己的应用程序的最近任务。