¿Cómo obtener tareas recientes en Android "L"?

Antecedentes

Mi aplicación permite ordenar una lista de aplicaciones en el momento en que se lanzaron recientemente.

El problema

A partir de Android "L", la funcióngetRecentTasks solo devolverá la lista de aplicaciones que la aplicación actual ha lanzado, como está escrito en eldocumentación:

Si su aplicación usa ActivityManager.getRecentTasks () ...

Con la introducción de la nueva función de tareas y documentos concurrentes en la próxima versión (consulte Documentos y actividades concurrentes en la pantalla Recientes a continuación), el método ActivityManager.getRecentTasks () ahora está en desuso para mejorar la privacidad del usuario. Para la compatibilidad con versiones anteriores, este método aún devuelve un pequeño subconjunto de sus datos, incluidas las tareas propias de la aplicación que realiza la llamada y posiblemente algunas otras tareas no confidenciales (como Inicio). Si su aplicación está utilizando este método para recuperar sus propias tareas, use android.app.ActivityManager.getAppTasks () en su lugar para recuperar esa información.

Lo mismo se escribe cuando se usa ADT para mostrar la documentación de esta función (actualmente no disponible en Internet):

Este método está en desuso. A partir de L, este método ya no está disponible para aplicaciones de terceros: como la introducción de documentos recientes centrados en documentos significa que puede filtrar información personal a la persona que llama. Para la compatibilidad con versiones anteriores, aún devolverá un pequeño subconjunto de sus datos: al menos las tareas propias de la persona que llama (aunque consulte getAppTasks () para obtener la forma correcta y compatible de recuperar esa información), y posiblemente algunas otras tareas como el hogar que conoce No seas sensible.

No entiendo por qué se tomó esta acción, ya que es fácil ver qué aplicaciones tiene el usuario, e incluso sin ningún permiso.

La cosa es que esta es una gran restricción para esta característica que he agregado, así que espero que haya una manera de superar esto.

Lo que he intentado

Por ahora, solo utilicé una forma heurística sobre qué aplicaciones se lanzaron recientemente; en su lugar, obtengo la lista de procesos en ejecución.

También podría usar el valor de importancia de los procesos y tal vez el "importanciaReasonComponent", pero esto es solo toda heurística y conjeturas ...

La pregunta

¿Hay alguna manera de superar esta restricción? ¿Alguna solución que no haya pensado?

Tal vez es posible con root? O BusyBox?

Respuestas a la pregunta(4)

Su respuesta a la pregunta