2

Ich muss eine Aktivität (nicht die Hauptaktivität) einer Anwendung aus einer Anwendung starten, die ich gemacht habe. Die Aktivität, die ich starten möchte, ist proprietär, daher kann ich an ihrem Code (oder Manifest) keine Änderungen vornehmen.Starten einer Aktivität einer Anwendung aus einer anderen Anwendung auf Android

Zum Beispiel: Ich möchte jemandes Facebook-Profil aus meiner eigenen Anwendung starten. Eine normale Facebook-Absicht von meiner App würde den "Newsfeed" öffnen (was ich nicht will). Ich möchte wissen, wie man auf andere Aktivitäten zugreift. Vielen Dank im Voraus!

Der kleine Code, den ich habe:

String PACKAGE="com.facebook.katana"; 
Intent launchIntent = getPackageManager() 
        .getLaunchIntentForPackage(PACKAGE); 
startActivity(launchIntent); 
+1

"Ich möchte wissen, wie man auf andere Aktivitäten zugreift" - Sie fragen den Entwickler der anderen Anwendung: "Was ist die richtige' Intent'-Struktur, um diese Aktivität in Ihrer App zu starten? Und, tun Sie planen, diese "Absicht" langfristig zu unterstützen? ". – CommonsWare

Antwort

1

spezifische Aktivität, die Sie verwenden explizite Absicht, benötigen zu starten. Oder verwenden Sie implizite Absicht mit Aktion, wenn Sie wissen, auf welche Aktion diese Aktivität antwortet.

explizite Absicht nutzen zu können, kann Folgendes tun (vorausgesetzt, Sie es aus der Tätigkeit nennen):

 Intent intent = new Intent(); 
     intent.setComponent(new ComponentName("com.package.name", "com.package.name.ActivityName")); 
     if(getPackageManager().resolveActivity(intent, 0) != null) { 
      startActivity(intent); 
     } else { 
      Toast.makeText(this, "No app installed that can perform this action", Toast.LENGTH_SHORT).show(); 
     } 

Sie auch Fahnen auf die Absicht hinzufügen können, fügen Sie Aktionen und Kategorien. Solange die Absicht vom PackageManager als realisierbare Absicht aufgelöst werden kann, wird die Aktivität gestartet. Jetzt

...

Die Frage nach Facebook-Profil, ist eine andere.

Vielleicht wäre der beste Weg dies zu erreichen, die Absicht mit der Aktion VIEW zu verwenden und Intent.setData mit uri auf die Profilseite zu setzen. Das sollte auch auf mögliche Fehler überprüft werden. Und dann startet die Auswahl aller unterstützten Aktivitäten, um sie zu öffnen, die Facebook-Anwendung enthalten sollte. Es liegt dann am Benutzer, die Absicht mit Facebook-App oder Launcher zu öffnen.

Verwandte Themen