Dans mon application, je souhaite afficher une liste de chaque lanceur disponible (pour Homescreen) sur ce téléphone Android spécifique. Est-il possible d'obtenir une sorte d'informations d'Android OS et comment puis-je faire cet appel? P>
Merci! P>
genre Cordialement Daniel p>
3 Réponses :
Essayez ce qui suit: p>
Obtenez la liste des applications installées: p>
Liste pkglist = getpackagemanager (). getInstaldpackages (packagemanager.get_activités); p> li>
Itérate sur cette liste et obtenez l'activité de lanceur en utilisant: p>
getpackagemanager (). GetLaunchinTentForpackage (Packagename); P> LI> ol>
Pour plus de détails, lisez ici: Packagemanager . J'espère que cela aide. P>
IIUC, getLaunchinTentForpackage (..) code> vous retournera dans l'intention de toute application, pas seulement du lanceur. Par exemple. Les applications "Paramètres" et "Media Player" ont également des intentions de lancement.
Vous pouvez interroger la liste de resolverinfo qui correspond à une intention spécifique. Le prochain extrait de code Imprimer tous les lanceurs installés.
PackageManager pm = getPackageManager(); Intent i = new Intent(Intent.ACTION_MAIN); i.addCategory(Intent.CATEGORY_HOME); List<ResolveInfo> lst = pm.queryIntentActivities(i, 0); for (ResolveInfo resolveInfo : lst) { Log.d("Test", "New Launcher Found: " + resolveInfo.activityInfo.packageName); }
1. b> Vous devriez vérifier (! lst.isempty ()) code>, voir OFF. Référence . 2. B> Votre réponse est meilleure que @ flavio's, voir les commentaires
Utilisez également inent.action_main code> pour action intention b> et
inent.category_home code> pour catégorie d'intention b> au lieu de chaînes codées dures.
Le chèque isempty () est inutile ici dans A pour chaque
Merci @electrocrat et Jacksonf1re pour les suggestions. Réponse modifiée.
Le code de code ci-dessus ne fonctionne pas avec précision, le résultat de la liste des lanceurs inclut également l'application du paramètre du système dont le nom du package est com.android.Settings. Ce résultat inattendu se produit sur mes deux pixels 2 (Android 8.0) et Nexus 6 (Android 7.1). P>