1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

fremde App explizit aus eigener App starten

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von hootzter, 29.09.2011.

  1. hootzter, 29.09.2011 #1
    hootzter

    hootzter Threadstarter Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    29.09.2011
    Hallo,

    ich möchte aus meiner eigenen Anwendung heraus über einen Intent eine fremde App (in meinem Fall die App "MyNet" auf dem eeepad Transformer) starten. Leider weiß ich auch nach Recherche im Internet und lesen eines Androidbuches nicht, wie ich hier genau vorgehen muss. Wenn ich bisher bei den Intents alles richtig verstanden habe, dann kann man entweder explizit den Klassennamen einer App im Intent angeben oder man gibt im Intent z.B. die auszuführende Action an + die category aus dem Manifest der fremden App an. Leider kommt man aber an das Manifest der fremden App nicht dran und wie man den korrekten Klassennamen inkl. package einer fremden Appp herausbekommt, weiß ich nicht => Ich weiß nicht, wie ich das hinbekomme.

    Es wäre super, wenn einer von euch eine Idee oder sogar eine Lösung hätte.

    Gruß

    hootzter
     
  2. Fr4gg0r, 30.09.2011 #2
    Fr4gg0r

    Fr4gg0r App-Anbieter (Werbung)

    Beiträge:
    2,506
    Erhaltene Danke:
    447
    Registriert seit:
    21.12.2009
  3. heitech, 30.09.2011 #3
    heitech

    heitech Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    5
    Registriert seit:
    26.05.2011
    Es gibt Möglichkeiten an das Manifest einer fremden App ranzukommen.
    Google mal nach APK Disassambler (dann solltest du im XDA Forum landen).

    Was du auch noch brauchst, ist eine app mit der du vorhandene Apps mit anderen teilen kannst (z.B. MyAppSharer). Hiermit kannst du eine App z.B. per Email verschicken. Somit hast du die entsprechende APK Datei. Funktioniert aber nicht bei System Apps.

    Mit dem Disassambler kannst du dir die APK Datei entpacken. Damit hast du das Manifest.
    Gruß Heiko
     
  4. DieGoldeneMitte, 30.09.2011 #4
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Du kannst auf deinem Gerät mit Hilfe des Packackemanangers (android.content.pm.PackageManager) alle gewünschten Information über Insallierte Apps abrufen. Auch Paketnamen etc...
     
  5. hootzter, 30.09.2011 #5
    hootzter

    hootzter Threadstarter Neuer Benutzer

    Beiträge:
    2
    Erhaltene Danke:
    0
    Registriert seit:
    29.09.2011
    Danke für die Hilfreichen Antworten.

    Ich habe es mit dem PacketManager versucht. Zuerst habe ich die App auf meinem Tablet gestartet, bin dann in die Einstellungen und auf Anwendungen gegangen, dann bei laufenden Anwendungen auf die gestartete App. Hier konnte ich dann schonmal den Paketnamen "com.asus.DLNA" ablesen. Anschließend habe ich mir mit folgendem Code und dem Debugger im Eclipse alle verfügbaren Aktivitäten des Pakets und alle Klassen angesehen.

    Code:
    PackageManager pm = getPackageManager();
            PackageInfo pI;
            try {
                pI = pm.getPackageInfo("com.asus.DLNA",pm.GET_ACTIVITIES);
            } catch (NameNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    

    Somit hatte ich also Paketname und auch die Klasse.
    Nun konnte ich mit folgendem Code die App starten.

    Code:
    Intent intent = new Intent(Intent.ACTION_MAIN);//Action_Main heißt Hauptklasse
            intent.addCategory(Intent.CATEGORY_LAUNCHER);
           
            intent.setClassName("com.asus.DLNA", "com.asus.DLNA.DLNA");//genau spezifizieren, was aufgerufen werden soll, sonst kommt auswahl
     
            startActivity(intent);
    
    Danke für die Hilfe:thumbup:
     

Diese Seite empfehlen