如何在android中获取设备菜单应用程序列表的点击事件



我正在做一个集成了Service listeners的android应用程序。如果我点击主菜单应用程序列表中的任何应用程序,我自己的应用程序应该会得到点击事件。我不知道这在安卓系统中可能吗?(例如)如果我点击列表中的facebook应用程序,我自己的应用程序(有广播或任何听众)应该会得到点击应用程序的包名。我怎么能那样做?

代码:

公共类MyService扩展服务{

public MyService() {
}
@Override
public IBinder onBind(Intent intent) {
    throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public void onCreate() {
    Toast.makeText(this, "Service was Created", Toast.LENGTH_LONG).show();
}
@Override
public void onStart(Intent intent, int startId) {
    ActivityManager mActivityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningTaskInfo> RunningTask = mActivityManager
            .getRunningTasks(1);
    ActivityManager.RunningTaskInfo ar = RunningTask.get(0);
    String activityOnTop = ar.topActivity.getClassName();
    Toast.makeText(this, activityOnTop, Toast.LENGTH_LONG).show();
}
enter code here
@Override
public void onDestroy() {
    Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show();
}

}

但它只显示此应用程序包名称。如果我退出了这个应用程序,&单击其他应用程序,它将不会获取其程序包名称。

一个选项是检查活动服务列表:

反复循环运行服务,以检测列表中的新添加内容。

要获得活动服务,

ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> runningAppProcessInfo = am.getRunningAppProcesses();

相关内容

最新更新