2010-04-28 19 views
7

मैं किसी अन्य अनुप्रयोगकैसे एक और एंड्रॉयड आवेदन

मैं कुछ examples की कोशिश की है से एक एंड्रॉयड आवेदन कॉल करना चाहते से एक एंड्रॉयड आवेदन कॉल करने के लिए है, लेकिन वे मेरे लिए काम नहीं कर रहे हैं, मैं एक पैकेज पार्स त्रुटि हो रही है।

पर विचार दो आवेदनों देखते हैं:

Intent i = new Intent(); 
i.setAction(android.content.Intent.ACTION_VIEW); 
i.setDataAndType(Uri.fromFile(fileName),"application/vnd.android.package-archive"); 
startActivity(i); 

यहाँ fileName = "file://data/data/package_name/files/Application1.apk";

+2

एंड्रॉयड में कई अवधारणाओं कि जैसे लगते हैं "एक-दूसरे एंड्रॉयड आवेदन कॉल" कर रहे हैं। कृपया अपने प्रश्न के लिए एक और सौ शब्द जोड़ने पर विचार करें, यह बताएं कि आप इसे पूरा करने की कोशिश कर रहे हैं, इसलिए हम आपकी मदद कर सकते हैं। – CommonsWare

+0

संभावित डुप्लिकेट [एंड्रॉइड पर किसी अन्य एप्लिकेशन से एप्लिकेशन लॉन्च करें] (http://stackoverflow.com/questions/3872063/launch-an-plication-from-another-plication-on-android) – galacticninja

उत्तर

1
: Application1 और Application2

मैं Application1

यहाँ से Application2 कॉल करना चाहते हैं यह करने के लिए कुछ नमूना कोड है

क्या आप ऐसे एप्लिकेशन को लॉन्च करने का प्रयास कर रहे हैं जो इंस्टॉल नहीं है? ऐसा लगता है कि आप एडी 1 को एसडी कार्ड पर ऐप 2 के लिए। एपीके फ़ाइल के स्थान से गुजरकर ऐप निष्पादित करने का प्रयास कर रहे हैं - यह काम नहीं करेगा। एंड्रॉइड ओएस को पता होगा कि उपयोगकर्ता ने इसे इंस्टॉल करने के बाद ही Intent के माध्यम से ऐप 2 को कैसे शुरू किया है (सुरक्षा जोखिमों पर विचार करें यदि आप एसडी कार्ड पर बैठे किसी भी मनमानी कोड का आह्वान कर सकते हैं)।

मानना ​​एप 1 और ऐप 2 स्थापित हैं, ऐप 2 के लिए AndroidManifest.xml फ़ाइल देखें। यह फ़ाइल इंगित करेगी कि किस तरह का Intent एस इसका जवाब देगा।

एक अच्छा उदाहरण के लिए http://developer.android.com/guide/topics/intents/intents-filters.html#npex देखें।

यदि आपको और सहायता चाहिए तो कृपया हमें app2 के लिए AndroidManifest.xml फ़ाइल दिखाएं।

5

मुझे लगता है कि इस कोड को मदद मिलेगी:

Intent intent = new Intent(Intent.ACTION_RUN); 
intent.setComponent(new ComponentName("<packet name>", "<class name>")); 
List list = packageManager.queryIntentActivities(intent, packageManager.COMPONENT_ENABLED_STATE_DEFAULT); 

if(list.size() > 0) 
{ 
Log.i("Log", "Have application" + list.size()); 
startActivity(intent); 
} 
else 
{ 
    Log.i("Log", "None application"); 
} 
0
Intent i4=new Intent(Intent.ACTION_MAIN); 

PackageManager manager = getPackageManager(); 

i4 = manager.getLaunchIntentForPackage("com.apk");//apk name 

i4.addCategory(Intent.CATEGORY_LAUNCHER); 

startActivity(i4); 
संबंधित मुद्दे