正在开发一个应用程序,我需要识别当前正在运行的应用程序,所以我尝试使用以下代码
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
// get the info from the currently running task
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
ComponentName componentInfo = taskInfo.get(0).topActivity;
if(!componentInfo.getPackageName().equals("your.package.name"))
{
//Do your stuff
}
但是它不适用于Android Lollipop(5.0)及更高版本,它没有返回当前正在运行的应用信息。
如果有人知道在android lollipop(5.0)及以上版本中有任何想法,请提供帮助。
答案 0 :(得分:0)
您必须使用UsageStatsManager
类才能实现此目的。它需要android.permission.PACKAGE_USAGE_STATS
。但是在developer guide中提到了它。
注意:此API需要android.permission.PACKAGE_USAGE_STATS权限,这是系统级权限,不会授予第三方应用。但是,声明权限意味着有意使用API,设备用户可以通过“设置”应用程序授予权限。
这意味着用户还必须通过设置&gt;启用此应用的访问权限。安全&gt;具有使用权限的应用。
有关详细信息,请参阅here。