¿Cómo obtener la lista de aplicaciones recientes con Android API 21 Lollipop?

Estoy creando un lanzador casero y quiero tener una compatibilidad con el Android 5.0, Lollipop. Quiero obtener una lista de las aplicaciones recientes en el lanzador.

Pero ya que ActivityManager.getRecentTasks() ya no funciona en la API 21, ¿cómo puedo hacer esto?

 String topPackageName ; if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { UsageStatsManager mUsageStatsManager = (UsageStatsManager)getSystemService("usagestats"); long time = System.currentTimeMillis(); // We get usage stats for the last 10 seconds List<UsageStats> stats = mUsageStatsManager.queryUsageStats(UsageStatsManager.INTERVAL_DAILY, time - 1000*10, time); // Sort the stats by the last time used if(stats != null) { SortedMap<Long,UsageStats> mySortedMap = new TreeMap<Long,UsageStats>(); for (UsageStats usageStats : stats) { mySortedMap.put(usageStats.getLastTimeUsed(),usageStats); } if(mySortedMap != null && !mySortedMap.isEmpty()) { topPackageName = mySortedMap.get(mySortedMap.lastKey()).getPackageName(); } } } 

Usando el UsageStatsManager , puede obtener los nombres de los paquetes de primer plano en ejecución.

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

Yo estaba preocupado por whis, ya que androide ha desaprobado algunos api como getRecentTasks , getRunningTasks sobre API21, dicen que este método ya no está disponible para aplicaciones de terceros. Cuando llamo a estos api en el dispositivo por encima de lollipop, acaba de devolver null o mi aplicación :(.

Entonces encontré un método en lugar de estos api, siempre y cuando podamos obtener el nombre de packagename la aplicación, podemos hacer casi todo lo que queremos. Android basado en linux, encontré este AndroidProcesses . Puede usar /proc para obtener la aplicación android pid y processName , y el processName es tal com.xxx.xxx:remote anuncio. Tenga en cuenta que el frente de : es el nombre del paquete 🙂

Después de obtener el packageName , creo que sabes qué hacer. Creo que podemos iniciar un Service de estadísticas de la aplicación más reciente utilizado de acuerdo con el proceso de fondo en ejecución. Cuanto más largo sea el tiempo estadístico, más precisos serán los resultados.

  • ¿Guarda Android los archivos .apk? ¿si es así, donde?
  • La importación android.support no se puede resolver
  • ¿Cómo hacer referencia a los "activos" de Android a través de paquetes?
  • ¿Cuál es la diferencia entre los paquetes android.opengl y javax.microedition.khronos.opengles?
  • ¿Puede alguien usar el mismo prefijo de nombre de paquete?
  • Reacondicionamiento .jar-s en Android .aar library
  • Cómo crear mi propia biblioteca android y alojarla
  • Carpetas de estudio androide dentro de paquetes
  • Nombres de paquetes para dominios que terminan en .do
  • Envía la transmisión de un apk / paquete a otro apk / package
  • Convención de paquetes Java
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.