如何在Android Lollipop(5.0)及以上版本中获取热门应用程序的活动信息

时间:2017-11-29 08:52:49

标签: android android-studio android-5.0-lollipop

正在开发一个应用程序,我需要识别当前正在运行的应用程序,所以我尝试使用以下代码

 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)及以上版本中有任何想法,请提供帮助。

1 个答案:

答案 0 :(得分:0)

您必须使用UsageStatsManager类才能实现此目的。它需要android.permission.PACKAGE_USAGE_STATS。但是在developer guide中提到了它。

  

注意:此API需要android.permission.PACKAGE_USAGE_STATS权限,这是系统级权限,不会授予第三方应用。但是,声明权限意味着有意使用API​​,设备用户可以通过“设置”应用程序授予权限。

这意味着用户还必须通过设置&gt;启用此应用的访问权限。安全&gt;具有使用权限的应用。

有关详细信息,请参阅here