Ne peuvent pas obtenir le nom de l'activité de premier plan dans Android Lollipop 5.0 uniquement
J'utilise le code suivant pour obtenir le nom de l'activité des applications en arrière-plan dans la variable foregroundTaskPackageName. Il fonctionne sur toutes les versions de système d'exploitation entre 4.1 à 4.4, mais ne fonctionne pas sous Android 5.0 Lollipop.
N'importe qui peut aider avec ce qui a changé dans la version 5.0 Lollipop? Dans Lollipop - le texte-je obtenir pour foregroundTaskPackageName est juste "Launcher3'. Je suis à l'aide de l'Émulateur Genymotion.
ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
RunningTaskInfo foregroundTaskInfo = am.getRunningTasks(1).get(0); //get
//list
//of
//running
//tasks
String foregroundTaskAppName = null;
String foregroundTaskPackageName = foregroundTaskInfo.topActivity
.getPackageName();
- Je me demandais si vous étiez en mesure de récupérer la topActivity avec la nouvelle UsageStatsManager pour Android L. Si oui s'il vous plaît laissez-moi savoir comment. Un exemple de code serait utile également. Merci.
- êtes-vous en mesure de trouver le moyen d'obtenir TopActivity?
- Nope. N'ai pas compris comment le faire encore dans Android 5.0 lollipop
- Répondu la même chose dans ce thread stackoverflow.com/questions/2166961/... s'il vous Plaît jeter un oeil.
- J'ai résolu ce problème; voir ma réponse ici: stackoverflow.com/a/36086106/2217336
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser les nouvelles
UsageStatsManager
et appeler saqueryUsageStats
méthode pour accéder à l'historique des activités lancées.Veuillez noter que l'utilisateur devra fournir l'accès à l'utilisation de la stat sur les paramètres de l'appareil à la Sécurité->Applications avec l'utilisation de l'accès.
Liens:
UsageStatsManager
de la documentationqueryUsageStats
documentation de la méthodeCela fonctionne pour moi sur Lollipop (21):
vous pouvez utiliser le code ci-dessous et obtenez le courant de premier plan de l'activité nom du package.
Comme par getRunningTasks() docs:
disponible, mais pas le meilleur moyen est d'utiliser de l'accessibilité.
Déclarer un d'accessibilité des services en AndroidManifest fichier xml
accessibility_service_config.xml fichier
stocker le nom de l'activité lors de l'état de la fenêtre a changé
L'inconvénient est que vous avez besoin pour permettre aux utilisateurs d'activer votre accessibilité des services dans les Paramètres.
j'ai créé une classe qui utilise
/system/bin/toolbox
de commande afin d'identifier les processus et identifie ensuite visible de l'application.Besoin d'ajouter identifie système apps sans INTERFACE utilisateur et android lanceurs.
ProcessManager.java
Essayer cette