4 votes

Nombre d'exécutions des applications installées

Je suis intéressé par l'obtention des valeurs des paquets déjà installés dans Android. J'essaie de trouver la valeur du nombre de fois où les paquets déjà installés ont été exécutés (fermés et ouverts). Je sais que je peux le faire pour mon application à partir des préférences de partage mais comment faire pour les paquets qui sont déjà là ? J'ai déjà la liste des paquets installés en utilisant PackageManager.

Merci d'avance

2voto

LuxuryMode Points 11381

La classe PackageInfo, qui peut être récupérée pour les paquets en utilisant le PackageManager, peut vous donner des informations sur la date de première installation et la date de dernière mise à jour. Mais il ne semble pas y avoir de moyen de savoir combien de fois il a été lancé, etc. Je ne suis même pas sûr que le système garde trace de ces informations. Vérifiez http://developer.Android.com/reference/Android/content/pm/PackageInfo.html

2voto

MadeInChina Points 115
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
PackageManager packageManager = mContext.getPackageManager(); 
List<ResolveInfo> apps = packageManager.queryIntentActivities(mainIntent, 0);

Essayez ceci.

0voto

nandeesh Points 16095

Je ne pense pas que cela soit possible à partir d'applications ordinaires. Cependant, si vous avez un accès Root, vous pouvez exécuter

dumpsys usagestats 

et analyser la sortie.

Ou vous pouvez utiliser le Usagestats Service qui fait déjà le suivi. Mais encore une fois, vous avez besoin d'un accès Root pour cela.

0voto

Terril Thomas Points 907
         PackageManager manager = getPackageManager();

                Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
                mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);

                final List<ResolveInfo> apps = manager.queryIntentActivities(mainIntent, 0);
                Collections.sort(apps, new ResolveInfo.DisplayNameComparator(manager));

                if (apps != null) {
                    final int count = apps.size();

                    if (mApplications == null) {
                        mApplications = new ArrayList<ApplicationInfo>(count);
                    }
    }
for (int i = 0; i < count; i++) {
                  ApplicationInfo application = new ApplicationInfo();
                ResolveInfo info = apps.get(DEFAULT_KEYS_SEARCH_LOCAL);

                application.title = info.loadLabel(manager);
                application.setActivity(new ComponentName(
                        info.activityInfo.applicationInfo.packageName,
                        info.activityInfo.name),
                        Intent.FLAG_ACTIVITY_NEW_TASK
                        | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
                application.icon = info.activityInfo.loadIcon(manager);

              //  mApplications.add(application);

        }

Cela vous donnera le nombre de toutes les applications installées.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X