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.
77
Versuchen Sie es mit PackageManager
undgetLaunchIntentForPackage()
Verwenden Sie einfach die folgenden zwei Zeilen, damit Sie jede installierte Anwendung starten können, deren
package name
bekannt 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
quelle
LaunchIntent.setFlags("Intent.FLAG_ACTIVITY_NEW_TASK");
undLaunchIntent.setFlags("Intent.FLAG_ACTIVITY_SINGLE_TOP");
Sie können die Startabsicht durch die
PackageManager
Klasse erhalten:PackageManager pm = context.getPackageManager(); Intent launchIntent = pm.getLaunchIntentForPackage("com.example.package"); context.startActivity(launchIntent);
Beachten Sie, dass
getLaunchIntentForPackage
null 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(); }
quelle
Intent intent; PackageManager pm = getActivity().getPackageManager(); intent = pm.getLaunchIntentForPackage("com.package.name"); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);
quelle