J'ai posé une question similaire à celle-ci plus tôt cette semaine, mais je ne comprends toujours pas comment obtenir une liste de toutes les applications installées, puis en choisir une à exécuter.
J'ai essayé:
Intent intent = new Intent(ACTION_MAIN);
intent.addCategory(CATEGORY_LAUNCHER);
et cela ne montre que les applications préinstallées ou qui peuvent exécuter le ACTION_MAIN
type d'intention.
Je sais également que je peux utiliser PackageManager
pour obtenir toutes les applications installées, mais comment l'utiliser pour exécuter une application spécifique?
android
android-intent
2Real
la source
la source
Réponses:
Voici le code pour obtenir la liste des activités / applications installées sur Android:
Vous obtiendrez toutes les données nécessaires dans le
ResolveInfo
pour démarrer une application. Vous pouvez vérifierResolveInfo
javadoc ici .la source
Voici une façon plus propre d'utiliser le
PackageManager
Plus d'informations ici http://qtcstation.com/2011/02/how-to-launch-another-app-from-your-app/
la source
Une autre façon de filtrer les applications système (fonctionne avec l'exemple de king9981):
la source
Voici un bon exemple:
la source
Obtention de la liste des applications non système installées
la source
Pour filtrer sur les applications basées sur le système:
la source
Pour obtenir toutes les applications installées, vous pouvez utiliser le Gestionnaire de packages.
Pour exécuter, vous pouvez utiliser le nom du package
Pour plus de détails, vous pouvez lire ce blog http://codebucket.co.in/android-get-list-of-all-installed-apps/
la source
Vous pouvez trouver la liste des applications installées dans l'appareil Android en utilisant le code ci-dessous, "packageInfo" contient les informations sur les applications installées dans l'appareil. nous pouvons récupérer Intent pour l'application installée à partir de l'objet packageinfo et en utilisant startactivity (intention), nous pouvons démarrer l'application. c'est à vous de décider comment organiser l'interface utilisateur, soit Listview ou Gridview. ainsi, sur un événement de clic basé sur la position, vous pouvez récupérer l'objet d'intention et démarrer l'intention d'activité.
la source
J'avais besoin de filtrer les applications système que l'utilisateur n'utilise pas vraiment (par exemple, "com.qualcomm.service", "update services", etc.). Finalement, j'ai ajouté une autre condition pour filtrer la liste des applications. Je viens de vérifier si l'application a une «intention de lancement».
Ainsi, le code résultant ressemble à ...
la source
S'il y a plusieurs lanceurs dans un seul package ci-dessus, le code présente un problème. Par exemple: sur LG Optimus Facebook pour LG, MySpace pour LG, Twitter pour LG contient un seul nom de package SNS et si vous utilisez ci-dessus, SNS se répétera. Après des heures de recherche, je suis venu avec le code ci-dessous. Semble bien fonctionner.
la source
@Jas: Je n'ai plus ce code, mais j'ai trouvé quelque chose de proche. Je l'ai fait pour rechercher des "composants" de mon application, ce ne sont que des activités avec une catégorie donnée.
J'ai commenté la partie où il obtient le nom de l'activité, mais c'est assez simple.
la source
Solution propre qui filtre avec succès les applications système
L'idée derrière cette solution est que l'activité principale de chaque application système n'a pas d' icône d'activité personnalisée . Cette méthode me donne un excellent résultat:
la source
la source
J'ai une autre solution:
la source
Obtenez toutes les applications:
Vérifiez si l'application installée puis ouvrez:
la source
vous pouvez utiliser ceci:
la source
la source