2011-12-21 12 views
5

मैं अपने AndroidManifest.xml में किसी अन्य एपीके में परिभाषित गतिविधि शुरू करने की कोशिश कर रहा हूं, यह एक गतिविधि को परिभाषित करता है और एक क्रिया के साथ, लेकिन कोई श्रेणी परिभाषित नहीं होती है।कार्रवाई के साथ गतिविधि शुरू करें, लेकिन कोई श्रेणी

प्रारूप मेरे कोड

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

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

पीछा कर रहा है हालांकि मेरी apk ध्यान में न आया ActivityNotFound अपवाद के साथ दुर्घटनाग्रस्त हो गया है, लॉग पढ़ कोई गतिविधि नहीं मंशा को संभालने के लिए मिला ... "

कोई विचार?

Thanx बहुत कुछ।

उत्तर

16

Intent documentation को देखते हुए, यह यह भी ध्यान रखें डिफ़ॉल्ट श्रेणी यहां आपूर्ति की कहते हैं। यदि गतिविधि की IntentFilter परिभाषा उस श्रेणी को शामिल नहीं करती है तो आप इसे प्रारंभ गतिविधि के साथ शुरू नहीं कर सकते हैं। setClassName विधि का उपयोग करने का प्रयास करें, और इसे पैकेज क्लास और गतिविधि क्लास को लॉन्च करने का प्रयास कर रहे हैं।

0

आपको अपनी मेनिफेस्ट में जो गतिविधि शुरू हो रही है उसे परिभाषित करने की आवश्यकता है। सुनिश्चित करें कि आपने <intent-action (और गतिविधि का नाम) प्रदान किया है जिसमें उस अन्य एपीके में गतिविधि है जिसे आप प्रारंभ करना चाहते हैं। इस जब उसके घटक नाम स्पष्ट रूप से निर्दिष्ट नहीं है अपनी गतिविधि को हल करने Context.startActivity विधि के लिए आवश्यक है:

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

+0

आप प्रकट में आशय परिभाषा के बारे में अधिक जानकारी दे सकते हैं? मैं अपने मैनिफेस्ट में अन्य एपीके में गतिविधि कैसे शामिल करूं? – Jimmy

11

जब आप प्रारंभ गतिविधि (...) का उपयोग करते हैं तो आपके पास खाली श्रेणी नहीं हो सकती है।

एक डिफ़ॉल्ट श्रेणी जोड़ सकते हैं और यह काम कर देगा:

<intent-filter> 
    <action android:name="action name" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 
संबंधित मुद्दे