Un proceso paso a paso aproximado sería:
- Cree una base de datos local de Android SQLite en la aplicación.
- El siguiente paso sería obtener una lista de todas las aplicaciones instaladas en el dispositivo. Puede hacerlo utilizando el Administrador de paquetes de Android que tiene getInstalledApplications () .
Aquí está el código:
PackageManager pm = getPackageManager ();
Lista paquetes = pm.getInstalledApplications (PackageManager.GET_META_DATA);
- ¿Qué lenguajes de programación debo aprender para crear aplicaciones y juegos de Android?
- ¿Cuál debería aprender, desarrollo de aplicaciones de Android o .NET?
- Cómo hacer que Tasker cuente el tiempo que pasa en el móvil (se proporciona una descripción)
- ¿Cuáles son algunas de las mejores aplicaciones de Android para fotografía y edición?
- Cómo saber qué aplicaciones de Android evitan que mi pantalla se apague
para (ApplicationInfo packageInfo: paquetes) {
Log.d (“Aplicaciones instaladas”, “Paquete instalado:” + packageInfo.packageName + “Actividad de lanzamiento:” + pm.getLaunchIntentForPackage (packageInfo.packageName));
}
La salida tiene nombres de paquetes y actividades de iniciador (los necesitará para crear accesos directos de inicio de aplicaciones) de todas las aplicaciones instaladas.
Una vez que tenga los nombres de los paquetes y las actividades del iniciador, guárdelos en la base de datos.
- El último paso sería obtener una lista de las aplicaciones lanzadas recientemente por el usuario para que podamos incrementar el contador en la base de datos para la cantidad de invocaciones de esa aplicación. Activity Manager tiene la función getRecentTasks () que puede proporcionarle la información requerida.
El código sería:
ActivityManager activityManager = (ActivityManager) getSystemService (Context.ACTIVITY_SERVICE);
Lista RecentTasks = activityManager.getRecentTasks (Integer.MAX_VALUE, ActivityManager.RECENT_WITH_EXCLUDED);para (int i = 0; i <RecentTasks.size (); i ++)
{String LocalApp = RecentTasks.get (i) .baseIntent.toString ();
int indexPackageNameBegin = LocalApp.indexOf (“cmp =”) + 4;
int indexPackageNameEnd = LocalApp.indexOf (“/”, indexPackageNameBegin);
String pckge = LocalApp.substring (indexPackageNameBegin, indexPackageNameEnd);
Log.d (“Aplicación ejecutada”, “Aplicación ejecutada:” + paquete);
}
La salida será nombres de paquetes de aplicaciones invocadas con frecuencia.
Debe colocar de alguna manera este código en un servicio en segundo plano y seguir actualizando la base de datos utilizando temporizadores de vez en cuando, lo cual es un proceso un poco complejo para explicar aquí.
Referencias
PackageManager | Desarrolladores de Android
ActivityManager | Desarrolladores de Android