2010-04-05 7 views
0

Je veux faire une application Android qui montre une liste d'applications (téléchargées sur le marché android) et lance celle que l'utilisateur sélectionne. D'après ce que j'ai lu, je dois utiliser des intentions comme ceci:Lancer des activités inconnues à partir d'une application Android

Intent intent = new Intent(); 
    intent.setClassName(packageName, className); 
    startActivity(intent); 

Je veux juste être en mesure de lancer les applications, et non pas une activité spécifique qu'ils pourraient avoir.

Ma question est: comment pourrais-je lancer ces applications si je ne connais pas leur nom de paquet ou className? ou peut-être, comment pourrais-je connaître leur className et packageName, si c'est une application de source fermée que je n'ai pas développée.

Merci.

Répondre

0

Utilisez PackageManager pour trouver les applications installées et autres. En fait, vous trouverez this book sample project fait un peu de ce dont vous avez besoin.

+0

merci beaucoup! Je ne savais pas à propos de cette classe utile ... – oscarello

0

En bref, vous ne pouvez pas. Mais, Android vous permettra d'obtenir une liste de paquets installés avec leurs noms de classe pleinement qualifiés. Consultez le code at this link pour un exemple de la façon d'obtenir cette liste de colis. Pour autant que je sache, il n'y a aucun moyen de déterminer d'où le paquet a été installé, mais ce que vous pouvez faire est de le comparer à une liste d'applications connues à préinstaller sur l'appareil et de les filtrer. L'idée étant que si ce n'est pas une application préinstallée, elle a probablement été installée sur le marché.

+0

Merci Chris, je vais vérifier le lien :) – oscarello