Ich weiß, wie ich meine eigenen Programme aktualisiere und wie ich Programme mit einer vordefinierten Uri öffne (zum Beispiel für SMS oder E-Mail).
Ich muss wissen, wie ich eine Absicht zum Öffnen von MyTracks oder einer anderen Anwendung erstellen kann, von der ich nicht weiß, welche Absichten sie hören.
Ich habe diese Informationen von DDMS erhalten, aber es ist mir nicht gelungen, dies in eine Absicht umzuwandeln, die ich verwenden kann. Dies wird beim manuellen Öffnen von MyTracks übernommen.
Danke für Ihre Hilfe
05-06 11:22:24.945: INFO/ActivityManager(76): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks bnds=[243,338][317,417] }
05-06 11:22:25.005: INFO/ActivityManager(76): Start proc com.google.android.maps.mytracks for activity com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks: pid=1176 uid=10063 gids={3003, 1015}
05-06 11:22:26.995: INFO/ActivityManager(76): Displayed activity com.google.android.maps.mytracks/com.google.android.apps.mytracks.MyTracks: 1996 ms (total 1996 ms)
quelle
onCreate
=>Bundle extras = getIntent().getExtras()
=>if(extras != null) { extras.getString("blah") }
etcgetPackageManager().getLaunchIntentForPackage()
erledigt das alles schon für dich github.com/android/platform_frameworks_base/blob/master/core/…Ich habe es so gemacht,
Anwendungsbeispiel:
Hoffe es hilft jemandem.
quelle
getLaunchIntentForPackage
Anrufs verwenden.getLaunchIntentForPackage()
fügt die Kategorie bereits hinzu, siehe Quelle: github.com/android/platform_frameworks_base/blob/master/core/…EDIT:
Fügen Sie, wie in den Kommentaren vorgeschlagen, zuvor eine Zeile hinzu
startActivity(intent);
quelle
Wenn Sie bereits den Paketnamen haben, den Sie aktivieren möchten, können Sie den folgenden Code verwenden, der etwas allgemeiner ist:
Ich fand, dass es in Fällen besser funktioniert, in denen die Hauptaktivität nicht durch die reguläre Methode zum Starten der Hauptaktivität gefunden wurde.
quelle
Dies ist der Code meiner Lösungsbasis für die MasterGaurav-Lösung:
quelle
Mit der Lösung von inversus habe ich das Snippet um eine Funktion erweitert, die aufgerufen wird, wenn die gewünschte Anwendung momentan nicht installiert ist. So funktioniert es: Führen Sie die Anwendung nach Paketnamen aus. Wenn nicht gefunden, öffnen Sie den Android Market - Google Play für dieses Paket .
Und es wird so verwendet:
quelle
Benutze das :
quelle
Öffnen Sie die Anwendung, falls vorhanden, oder öffnen Sie die Play Store-Anwendung, um sie zu installieren:
quelle
So starten Sie eine andere Anwendungsaktivität über meine Anwendungsaktivität. Es funktioniert gut für mich.
Der folgende Code funktioniert, wenn die andere Anwendung bereits auf Ihrem Telefon installiert ist. Andernfalls ist es nicht möglich, von einer App zu einer anderen App umzuleiten. Stellen Sie also sicher, dass Ihre App gestartet wurde oder nicht
quelle
// Dies funktioniert unter Android Lollipop 5.0.2
quelle
Da Anwendungen viele Telefoneinstellungen nicht ändern dürfen, können Sie eine Einstellungsaktivität wie eine andere Anwendung öffnen.
Sehen Sie sich Ihre LogCat-Ausgabe an, nachdem Sie die Einstellung tatsächlich manuell geändert haben:
Verwenden Sie diese Option, um die Einstellungsseite Ihrer App anzuzeigen:
quelle
Für API Level 3+ nichts weiter als eine Codezeile:
Intent intent = context.getPackageManager().getLaunchIntentForPackage("name.of.package");
Rückgabe einer CATEGORY_INFO-Startabsicht (Apps ohne Startaktivität, z. B. Hintergrundbilder, verwenden diese häufig, um Informationen zur App bereitzustellen) und, falls nicht gefunden, geben Sie die CATEGORY_LAUNCH des Pakets zurück, falls vorhanden.
quelle
Wenn Sie versuchen, einen SERVICE anstelle einer Aktivität zu starten, hat dies für mich funktioniert:
Wenn Sie die Methode intent.setComponent (...) verwenden, wie in anderen Antworten erwähnt, wird möglicherweise die Warnung "Implizite Absichten mit startService sind nicht sicher" angezeigt.
quelle
Alternativ können Sie die Absicht auch über Ihre App in der anderen App öffnen mit:
Wo
uri
ist der Deeplink zur anderen App?quelle
Verwenden Sie Folgendes:
quelle
Starten Sie eine Anwendung von einer anderen Anwendung auf Android
quelle
Wenn Sie eine andere Anwendung öffnen möchten und diese nicht installiert ist, können Sie sie zum Herunterladen an den Google App Store senden
Erstellen Sie zunächst beispielsweise die openOtherApp-Methode
2.- Verwendung
quelle
Versuchen Sie diesen Code. Ich hoffe, dies wird Ihnen helfen. Wenn dieses Paket verfügbar ist, wird die App geöffnet oder der Play Store zum Herunterladen geöffnet
quelle
Mit diesem Befehl können Sie die auf einem Gerät installierten Paketnamen suchen:
Referenz: http://www.aftvnews.com/how-to-determine-the-package-name-of-an-android-app/
quelle
quelle