Détection des lancements de l'activité Android

J'ai cherché sur le stackoverflow pour cette question et j'ai trouvé: Android, Détecter quand d'autres applications sont lancées et un moyen fiable de détecter le lancement de l'application à partir de la maison / du bureau? , Quel type de réponse à ma question, mais ce n'est toujours pas suffisant.

Ce que je veux faire, je veux créer un widget / application qui montre à l'utilisateur du périphérique une liste d'applications récentes et une liste des applications les plus utilisées.

  • RestKit dans Android?
  • Comment instancier un auditeur par réflexion dans Android
  • Impossible de créer un gestionnaire dans un thread qui n'a pas appelé Looper.prepare () dans CountDownTimer
  • Service Android
  • Comment lancer une activité sans UI?
  • Activité cycle de vie
  • Problème Comment puis-je avoir des données précises sur les applications afin de créer une liste des applications les plus utilisées.

    Informations de base

    • Je compile mon propre système d'exploitation Android (4.2 basé), donc j'ai accès à tout.
    • Je développe aussi le lanceur.
    • Il doit passer le CTS et être approuvé par Google.
    • Je peux faire l'application avec les privilèges du système.
    • Je sais que cela pourrait être un problème de sécurité pour Google.

    Quelques solutions

    Les applications récentes peuvent être trouvées via ActityManager, méthode getRecentApps, donc maintenant problème là-bas.

    J'ai cherché sur Internet et j'ai déjà trouvé les solutions suivantes:

    1. Utilisez un service pour interroger la méthode activityManager, getRunningTasks toutes les X secondes et créez la liste (informations innacurate, également en utilisant beaucoup de batterie).
    2. Utilisez le logcat pour obtenir cette information (semble être un hack pour moi, nécessite des autorisations système)
    3. Changez le activityManager lui-même afin de fournir cette information (sera probablement échoué aux tests CTS)
    4. Utilisez le lanceur pour vérifier les applications qui ont été lancées (manque les applications lancées dans d'autres applications)

    Tout ce que j'ai manqué?

    Merci d'avance, Tiago Costa

    One Solution collect form web for “Détection des lancements de l'activité Android”

    L'application de la boîte de dialogue des applications récentes par défaut d'Android est la meilleure référence pour vous, regardez ici … vérifiez les mises à jour ()

     final ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); final List<ActivityManager.RecentTaskInfo> recentTasks = am.getRecentTasks(MAX_RECENT_TASKS, ActivityManager.RECENT_IGNORE_UNAVAILABLE); 

    Vous pouvez essayer de manière similaire …

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.