Kann mir jemand sagen, wie ich eine neue Anwendung starten soll, wenn ich nur den Paketnamen kenne? Ich habe keine Informationen darüber, welche Aktivität die Hauptaktivität ist.
Antworten:
Versuchen Sie es mit PackageManagerundgetLaunchIntentForPackage()
Verwenden Sie einfach die folgenden zwei Zeilen, damit Sie jede installierte Anwendung starten können, deren package namebekannt ist:
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("com.example.abc");
startActivity( launchIntent );
Wenn Sie den Paketnamen der Anwendung, die Sie starten möchten, nicht kennen, probieren Sie es aus
PackageManager pm;
pm = getPackageManager();
// get a list of installed apps.
packages = pm.getInstalledApplications(0);
Weitere Informationen finden Sie unter diesem Link Verwenden des Paketmanagers
LaunchIntent.setFlags("Intent.FLAG_ACTIVITY_NEW_TASK");undLaunchIntent.setFlags("Intent.FLAG_ACTIVITY_SINGLE_TOP");
Sie können die Startabsicht durch die PackageManagerKlasse erhalten:
PackageManager pm = context.getPackageManager();
Intent launchIntent = pm.getLaunchIntentForPackage("com.example.package");
context.startActivity(launchIntent);
Beachten Sie, dass getLaunchIntentForPackagenull zurückgegeben wird, wenn das Paket nicht gefunden wird. Vielleicht möchten Sie eine Nullprüfung hinzufügen:
if (launchIntent != null) {
context.startActivity(launchIntent);
} else {
Toast.makeText(context, "Package not found", Toast.LENGTH_SHORT).show();
}
Intent intent;
PackageManager pm = getActivity().getPackageManager();
intent = pm.getLaunchIntentForPackage("com.package.name");
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);