以编程方式在android中显示当前运行的应用程序

时间:2016-09-12 02:03:53

标签: android android-6.0-marshmallow

我有一个android程序,其目标是显示当前正在运行的应用程序。我的应用中还运行了BroadcastReceiverService

但是我的问题是这段代码总是显示我的项目包名称,而不是当前正在运行的应用程序。

代码:

ActivityManager mActivityManager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> RAP= mActivityManager.getRunningAppProcesses();

    for(ActivityManager.RunningAppProcessInfo processInfo: RAP ){
        Log.e("Process name ", "" + processInfo.processName);
    }

我正在运行Marshmallow OS。任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用AccessibilityService来确定当前正在运行的应用。

用户需要在其设置中打开您的辅助功能服务才能使其正常工作,您需要通过在辅助功能服务声明XML中隐藏android:accessibilityEventTypes="typeWindowStateChanged"来接收windowStateChanged事件。

您可以在此处详细了解AccessibilityServices:https://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html