73 votes

démarrer l'application en connaissant le nom du paquet

Comment puis-je lancer une nouvelle application en utilisant son nom de paquet ? Je n'ai pas d'informations sur l'activité principale.

146voto

patric Points 528

Il suffit d'utiliser ces deux lignes suivantes, pour pouvoir lancer n'importe quelle application installée dont le nom du paquetage est connu :

Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.example.abc");
startActivity( launchIntent );

Si vous ne connaissez pas le nom du paquet de l'application que vous voulez lancer, essayez de le faire :

PackageManager pm;
pm = getPackageManager();
//  get a list of installed apps.
packages = pm.getInstalledApplications(0);

Pour plus d'informations, consultez ce lien : Utilisation du gestionnaire de paquets .

91voto

CommonsWare Points 402670

Essayez d'utiliser PackageManager y getLaunchIntentForPackage()

21voto

Anubian Noob Points 6034

Vous pouvez obtenir l'intention de lancement par le biais du PackageManager classe :

PackageManager pm = context.getPackageManager();
Intent launchIntent = pm.getLaunchIntentForPackage("com.example.package");
context.startActivity(launchIntent);

Notez que getLaunchIntentForPackage renvoie null si le paquet n'est pas trouvé. Vous pourriez donc vouloir ajouter une vérification de nullité :

if (launchIntent != null) {
    context.startActivity(launchIntent);
} else {
    Toast.makeText(context, "Package not found", Toast.LENGTH_SHORT).show();
}

2voto

Siddhi Mandodi Points 21
Intent intent;                                        
PackageManager pm = getActivity().getPackageManager();

intent = pm.getLaunchIntentForPackage("com.package.name");                       
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(intent);

0voto

Pratik Fagadiya Points 92
    Intent intent = getPackageManager().getLaunchIntentForPackage("app.package.name");
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    if (intent != null) {
        startActivity(intent);
    } else {
        Toast.makeText(context, "Package not found", Toast.LENGTH_SHORT).show();
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X