我有一个android程序,其目标是显示当前正在运行的应用程序。我的应用中还运行了BroadcastReceiver
和Service
。
但是我的问题是这段代码总是显示我的项目包名称,而不是当前正在运行的应用程序。
代码:
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。任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
您可以使用AccessibilityService来确定当前正在运行的应用。
用户需要在其设置中打开您的辅助功能服务才能使其正常工作,您需要通过在辅助功能服务声明XML中隐藏android:accessibilityEventTypes="typeWindowStateChanged"
来接收windowStateChanged事件。
您可以在此处详细了解AccessibilityServices:https://developer.android.com/reference/android/accessibilityservice/AccessibilityService.html