2011-12-21 24 views
5

Hayır Başka bir apk tanımlanan AndroidManifest.xml içinde tanımlanmış bir etkinlik başlatmaya çalışıyorum, bir aktivite ve bir eylem tanımlar, ancak hiçbir kategori tanımlanır.Aktivite ile eylemi başlatın, ancak kategori

Kodum Ancak benim apk yakalanmamış ActivityNotFound hariç çöktü

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

takip ediyor

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

gibi biçimidir, günlükleri Etkinlik yok niyet işlemek için bulundu oku ... "

Herhangi bir düşünce?

Thanx çok.

cevap

16

Intent documentation baktığımızda, o da DEFAULT kategorisi burada verilen Not söylüyor. Etkinliğin IntentFilter tanımı bu kategoriyi içermiyorsa, startActivity ile başlatamazsınız. setClassName yöntemini kullanmayı deneyin ve paket sınıfını ve başlatmaya çalıştığınız etkinlik sınıfını iletin. StartActivity (...) kullandığınızda boş kategoriniz olamaz.

0

Manifest'inizde başlattığınız aktiviteyi tanımlamanız gerekir. Başlamak istediğiniz diğer üründe etkinliğe sahip aynı <intent-action (ve aktivitenin adı) sağladığınızdan emin olun. Bu bileşen adı açıkça belirtilmemişse aktivitenizi çözmek için Context.startActivity yöntemi için gereklidir:

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

+0

Eğer Bildiride niyet tanımı hakkında daha fazla ayrıntı verebilir misiniz? Bildirgemde diğer apk'de nasıl etkinlik ekleyebilirim? – Jimmy

11

varsayılan kategorisi ekleyip bu işi yapacak:

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