2012-03-23 13 views
5

Powiel możliwe:
Android Launch an application from another applicationUruchom aktywny z innej aplikacji Android

Mam problem i jest on następujący:

Mam dwie aplikacje, a ja chcesz uruchomić jedną z czynności z jednej aplikacji przez drugą ...... Podam przykład:

pierwsza aplikacja opakowanie:

"es.wul4.android.app1"

2-ty aplikacja opakowanie:

"es.wul4.android.app2"

To, czego chcę, to uruchomienie działania, którego klasa nazywa się "Identificar" z aplikacji1

Ta aktywność NIE jest najważniejsza. Próbowałem do:

Intent intent = getPackageManager().getLaunchIntentForPackage("es.wul4.app2.Identificar"); 
startActivity(intent); 

Ale to, co robię, to nic, mówi mi, że aplikacja nie istnieje.

Gdy próbuję to robić:

getPackageManager().getLaunchIntentForPackage("es.wul4.app2"); 
startActivity(intent); 

I uruchomić jedno działanie, ale główny jedno ........

Jak mogę uruchomić tej konkretnej aktywności wewnątrz opakowania " es.wul4.app2.Identificar "??

Dziękuję bardzo.

+0

Chcesz rozpocząć określoną aktywność? – Praveenkumar

Odpowiedz

15

Co trzeba użyj: intent-filters. Załóżmy, że uruchamiana aktywność znajduje się w pakiecie launch.me. Wewnątrz tej aplikacji będą widoczne wszystkie działania (główne lub inne) będą oznaczone znacznikiem <activity>.
Zakładając, że aktywność, którą chcesz uruchomić, znajduje się w pliku klasy Launchme. Następnie część manifestu będzie coś takiego:

<activity android:name="launch.me.Launchme" 
       android:label="@string/app_name"> 
<intent-filter> 
      <action android:name="launch.me.action.LAUNCH_IT"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
</intent-filter> 
</activity> 

obecnie w działalności, z którego chcesz uruchomić powyższą korzystanie działalność: (uwaga: ta aktywność może być w każdym pakiecie wszędzie.Musisz upewnić się, że zarówno powołanie i zwane pakiety są dostępne na urządzeniu)

Intent i=new Intent(); 
i.setAction("launch.me.action.LAUNCH_IT"); 
startActivityForResult(i,0); 

Można użyć innych metod do uruchomienia intencją inny niż startActivityForResult, ów zapisu do Ciebie.

+0

Dziękujemy! Nie wiedziałem, że użycie do uruchomienia działania było konieczne, teraz mogę uruchomić działanie bez żadnych problemów i mogę nawet wysłać określone dane – zapotec

+0

tak, można łatwo przekazywać wartości pomiędzy nimi za pomocą 'putExtra' z zamiarem :) – Urban

1

Czy dodać aktywność wewnątrz app1 s manifeście ?:

<activity 
     android:label="@string/app_name" 
     android:name=".Identificar" > 
    </activity> 
+1

+1 za ważną rzecz jest wymieniona – Praveenkumar

+1

....... Myślę, że nie rozumiesz bardzo dobrze .... app1 nie zawiera Activity Identificar. Identyfikator działania znajduje się w aplikacji app2. Chcę uruchomić tę aktywność z aplikacji1. Dzięki i tak. – zapotec

-3

myślę, ponieważ oba działania są w tym samym opakowaniu, które trzeba tylko zrobić:

startActivity(new Intent(getApplicationContext(), Identificar.class)); 
+0

ponownie przeczytaj pytanie ... "pierwszy pakiet aplikacji:' es.wul4.android.app1', drugi pakiet aplikacji: 'es.wul4.android.app2'" – Selvin

+0

Umm, tak, moja wina. –

Powiązane problemy