¿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.

  • La importación android.support no se puede resolver
  • ¿Qué es SortedList <T> trabajando con RecyclerView.Adapter?
  • Parcel Lista de Lista de objeto Parcelable
  • ¿Puede alguien usar el mismo prefijo de nombre de paquete?
  • ¿Guarda Android los archivos .apk? ¿si es así, donde?
  • Despliegue del parcelero dando datos incorrectos
  • Java - android UDP falta de fiabilidad
  • ¿Cómo hacer referencia a los "activos" de Android a través de paquetes?
  • Iniciar actividad desde otro paquete
  • Pasar arraylist de objetos definidos por el usuario a Intent android
  • ¿Pueden dos aplicaciones diferentes tener el mismo nombre de paquete?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.