Android 接收其他申请';使用时间数据
我在做一个android项目。我需要接收其他应用程序的使用时间。我只需要知道有多少应用程序正在运行,它们是什么。我如何访问这些类型的数据Android 接收其他申请';使用时间数据,android,Android,我在做一个android项目。我需要接收其他应用程序的使用时间。我只需要知道有多少应用程序正在运行,它们是什么。我如何访问这些类型的数据 我找到了一些关于接收他人的SQLite DB的文章,但我真的不需要这些。您可以按照以下步骤操作: private List<String> getRunningAppList() { Set<String> appNameList = new HashSet<>(); PackageManager pm =
我找到了一些关于接收他人的SQLite DB的文章,但我真的不需要这些。您可以按照以下步骤操作:
private List<String> getRunningAppList()
{
Set<String> appNameList = new HashSet<>();
PackageManager pm = getPackageManager();
ActivityManager aManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
// Get the list of the tasks that are currently running
List<ActivityManager.RunningTaskInfo> infoList = aManager.getRunningTasks(Integer.MAX_VALUE);
for (ActivityManager.RunningTaskInfo taskInfo : infoList)
{
// Get the packageNAme
String pkgName = taskInfo.topActivity.getPackageName();
String appName = null;
// Get the appName
try
{
appName = pm.getApplicationLabel(pm.getApplicationInfo(pkgName,PackageManager.GET_META_DATA)).toString();
} catch (PackageManager.NameNotFoundException e)
{
e.printStackTrace();
}
// Adding the appName
appNameList.add(appName);
}
return new ArrayList<>(appNameList);
}
- 通过调用获取当前正在运行的任务的列表
- 完成每个任务并检索
PackageName
- 从
PackagName
- 在列表中添加
AppName
private List<String> getRunningAppList()
{
Set<String> appNameList = new HashSet<>();
PackageManager pm = getPackageManager();
ActivityManager aManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
// Get the list of the tasks that are currently running
List<ActivityManager.RunningTaskInfo> infoList = aManager.getRunningTasks(Integer.MAX_VALUE);
for (ActivityManager.RunningTaskInfo taskInfo : infoList)
{
// Get the packageNAme
String pkgName = taskInfo.topActivity.getPackageName();
String appName = null;
// Get the appName
try
{
appName = pm.getApplicationLabel(pm.getApplicationInfo(pkgName,PackageManager.GET_META_DATA)).toString();
} catch (PackageManager.NameNotFoundException e)
{
e.printStackTrace();
}
// Adding the appName
appNameList.add(appName);
}
return new ArrayList<>(appNameList);
}
private List getRunningAppList()
{
Set appNameList=newhashset();
PackageManager pm=getPackageManager();
ActivityManager aManager=(ActivityManager)getSystemService(Context.ACTIVITY_服务);
//获取当前正在运行的任务的列表
List infoList=aManager.getRunningTasks(Integer.MAX_值);
对于(ActivityManager.RunningTaskInfo任务信息:信息列表)
{
//给我拿包
字符串pkgName=taskInfo.topActivity.getPackageName();
字符串appName=null;
//获取appName
尝试
{
appName=pm.getApplicationLabel(pm.getApplicationInfo(pkgName,PackageManager.GET_META_DATA)).toString();
}捕获(PackageManager.NameNotFounde异常)
{
e、 printStackTrace();
}
//添加appName
appNameList.add(appName);
}
返回新的ArrayList(appNameList);
}
您可以按照以下步骤操作:
private List<String> getRunningAppList()
{
Set<String> appNameList = new HashSet<>();
PackageManager pm = getPackageManager();
ActivityManager aManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
// Get the list of the tasks that are currently running
List<ActivityManager.RunningTaskInfo> infoList = aManager.getRunningTasks(Integer.MAX_VALUE);
for (ActivityManager.RunningTaskInfo taskInfo : infoList)
{
// Get the packageNAme
String pkgName = taskInfo.topActivity.getPackageName();
String appName = null;
// Get the appName
try
{
appName = pm.getApplicationLabel(pm.getApplicationInfo(pkgName,PackageManager.GET_META_DATA)).toString();
} catch (PackageManager.NameNotFoundException e)
{
e.printStackTrace();
}
// Adding the appName
appNameList.add(appName);
}
return new ArrayList<>(appNameList);
}
- 通过调用获取当前正在运行的任务的列表
- 完成每个任务并检索
PackageName
- 从
PackagName
- 在列表中添加
AppName
private List<String> getRunningAppList()
{
Set<String> appNameList = new HashSet<>();
PackageManager pm = getPackageManager();
ActivityManager aManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
// Get the list of the tasks that are currently running
List<ActivityManager.RunningTaskInfo> infoList = aManager.getRunningTasks(Integer.MAX_VALUE);
for (ActivityManager.RunningTaskInfo taskInfo : infoList)
{
// Get the packageNAme
String pkgName = taskInfo.topActivity.getPackageName();
String appName = null;
// Get the appName
try
{
appName = pm.getApplicationLabel(pm.getApplicationInfo(pkgName,PackageManager.GET_META_DATA)).toString();
} catch (PackageManager.NameNotFoundException e)
{
e.printStackTrace();
}
// Adding the appName
appNameList.add(appName);
}
return new ArrayList<>(appNameList);
}
private List getRunningAppList()
{
Set appNameList=newhashset();
PackageManager pm=getPackageManager();
ActivityManager aManager=(ActivityManager)getSystemService(Context.ACTIVITY_服务);
//获取当前正在运行的任务的列表
List infoList=aManager.getRunningTasks(Integer.MAX_值);
对于(ActivityManager.RunningTaskInfo任务信息:信息列表)
{
//给我拿包
字符串pkgName=taskInfo.topActivity.getPackageName();
字符串appName=null;
//获取appName
尝试
{
appName=pm.getApplicationLabel(pm.getApplicationInfo(pkgName,PackageManager.GET_META_DATA)).toString();
}捕获(PackageManager.NameNotFounde异常)
{
e、 printStackTrace();
}
//添加appName
appNameList.add(appName);
}
返回新的ArrayList(appNameList);
}
使用UsageStats
,UsageStatsManager
是解决此问题的最佳方法
UsageStats.getLastTimeUsed()
以日期格式通知您特定应用程序的上次使用时间。使用UsageStats
,UsageStatsManager
是解决此主题的最佳方法
UsageStats.getLastTimeUsed()
按日期格式通知您特定应用程序的上次使用时间。您是否选中了此选项是的,但此代码仅显示我正在运行的应用程序信息,我需要当前设备上正在运行的应用程序的名称。好的,请检查我的答案。您是否检查了此答案?是的,但此代码仅显示我正在运行的应用程序信息,我需要当前设备上正在运行的应用程序的名称。好的,请检查我的答案。Sabbir,我不知道您为什么不尊重我的意见。getRunningTasks不推荐使用。我已经检查了你的评论,但是没有用。我非常抱歉。您的评论“是的,但此代码仅显示我正在运行的应用程序信息,我需要当前设备上正在运行的应用程序的名称。”这并不意味着。我知道getRunningTasks()已被弃用,但我认为它会起作用。但是,您可以使用getRunningAppProcesses()方法而不是getRunningTasks(Integer.MAX_值)。它们只显示我的应用程序的名称。尊重我的解决方案,兄弟,我不知道你为什么不尊重我的意见。getRunningTasks不推荐使用。我已经检查了你的评论,但是没有用。我非常抱歉。您的评论“是的,但此代码仅显示我正在运行的应用程序信息,我需要当前设备上正在运行的应用程序的名称。”这并不意味着。我知道getRunningTasks()已被弃用,但我认为它会起作用。但是,您可以使用getRunningAppProcesses()方法而不是getRunningTasks(Integer.MAX_值)。它们只显示我的应用程序的名称。尊重我的解决方案,兄弟。