2011-12-21 16 views
5

Próbuję uruchomić działanie zdefiniowane w innym pakiecie apk, w jego pliku AndroidManifest.xml definiuje działanie i działanie, ale nie definiuje żadnej kategorii.Rozpocznij aktywność z działaniem, ale bez kategorii

Format jest jak

<activity name="..."> 
    <intent-filter> 
     <action android:name="action name"> 
    <intent-filter> 
</activity> 

Mój kod jest następujący

Intent i = new Intent("action name"); 
startActivity(i); 

Jednak moja apk rozbił się z nieprzechwyconego wyjątkiem ActivityNotFound, dzienniki czytać Nie stwierdzono aktywny uchwyt intencji ... "

Jakieś przemyślenia?

Bardzo dużo.

Odpowiedz

16

Patrząc na Intent documentation, mówi Uwaga również kategorię DEFAULT dostarczone tutaj: jest to wymagane dla metody Context.startActivity rozwiązać swoją aktywność, gdy jego nazwa składnika nie jest wyraźnie określona. Jeśli definicja IntentFilter działania nie zawiera tej kategorii, nie można jej uruchomić przy użyciu funkcji startActivity. Spróbuj użyć metody setClassName i przekaż jej klasę pakietu oraz klasę aktywności, którą próbujesz uruchomić.

0

Musisz zdefiniować aktywność, którą uruchamiasz w swoim Manifeście. Upewnij się, że podałeś tę samą <intent-action (i nazwę działania), która ma aktywność w innym apk, który chcesz uruchomić.

android: how do i open another app from my app?

+0

można dać więcej szczegółów o zamiarze definicją w oczywisty? Jak dołączyć aktywność do drugiego pliku APK w moim manifeście? – Jimmy

11

Nie można mieć pustej kategorii podczas korzystania z funkcji startActivity (...).

dodać domyślną kategorię i to będzie wykonać zadanie:

<intent-filter> 
    <action android:name="action name" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 
Powiązane problemy