Bearbeiten je nach Kommentar
In einigen Versionen - wie in Kommentaren vorgeschlagen - kann die ausgelöste Ausnahme anders sein.
Daher wird die folgende Lösung leicht abgewandelt
Intent launchIntent = null;
try{
launchIntent = getPackageManager().getLaunchIntentForPackage("applicationId");
} catch (Exception ignored) {}
if(launchIntent == null){
startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("https://play.google.com/store/apps/details?id=" + "applicationId")));
} else {
startActivity(launchIntent);
}
Original-Antwort
Obwohl die Frage gut beantwortet wurde, gibt es eine ziemlich einfache Implementierung, die behandelt, wenn die App nicht installiert ist. Ich mache es wie folgt
try{
startActivity(getPackageManager().getLaunchIntentForPackage("applicationId"));
} catch (PackageManager.NameNotFoundException e) {
startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("https://play.google.com/store/apps/details?id=" + "applicationId")));
}
Ersetzen Sie "applicationId" durch das Paket, das Sie öffnen möchten, z. B. com.google.maps usw.
2 Stimmen
Was passiert, wenn ich die zweite App von der ersten aus öffne und dann direkt auf das Symbol der zweiten App klicke, erhalte ich zwei Instanzen der App, was nicht erwünscht ist. Wie kann ich damit umgehen?
0 Stimmen
Mögliches Duplikat von So rufen Sie eine Android-Anwendung von einer anderen Android-Anwendung aus auf