¿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?
- Parcel Lista de Lista de objeto Parcelable
- ActivityNotFoundException cuando targetClass del paquete diferente en PreferenceScreen
- Cordova + Marco iónico - ¿Cómo cambiar el nombre del paquete con seguridad?
- ¿Qué es SortedList <T> trabajando con RecyclerView.Adapter?
- Combinar paquetes de diferentes proyectos en un solo proyecto en eclipse
- ¿Cómo incluir el JAR Spongy Castle en Android?
- ¿Cómo evito que Android Studio colapse automáticamente mis paquetes en la navegación de proyectos?
- Despliegue del parcelero dando datos incorrectos
- Error: "la clase debe implementar el método abstracto X", pero ya lo hace
- ¿Cómo enviar parámetros desde un clic de notificación a una actividad?
- Java - android UDP falta de fiabilidad
- Cómo enumerar pares de valores clave de un paquete
- ¿Pueden dos aplicaciones diferentes tener el mismo nombre de paquete?
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.
- Crear nueva actividad mientras hace clic en el icono de configuración
- Cómo resolver tipos inconvertibles no puede lanzar "Android.support.v4.app.fragment" a "nombre de paquete"