2010-08-06 11 views
65

कोई मुझे बता सकते हैं कि कैसे केवल अपने पैकेज का नाम जानते हुए भी नया आवेदन शुरू करने के लिए आवेदन शुरू? मुझे इस बारे में जानकारी नहीं है कि मुख्य गतिविधि कौन सी गतिविधि है।जानते हुए भी पैकेज का नाम

उत्तर

79

PackageManager और getLaunchIntentForPackage()

+1

धन्यवाद, मैं इस समारोह को याद करते हुए PackageManager को देख ... – bart

+0

सर क्यों नहीं कर सकते मैं लांचर का शुभारंभ अपने पैकेज इसके देने java.lang.NullPointer अपवाद नाम हो रही द्वारा ? –

+0

क्या एक नया नया इंस्टेंस लॉन्च करता है? मैं मौजूदा लॉन्च करना चाहता हूं। मैं उसको कैसे करू? – JohnyTex

116

का उपयोग कर बस इन निम्नांकित दो पंक्तियों का उपयोग करें, तो आप किसी भी इंस्टॉल किए गए एप्लिकेशन जिसका package name में जाना जाता है शुरू कर सकते हैं का प्रयास करें:

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage("com.example.abc"); 
startActivity(LaunchIntent); 

आप एप्लिकेशन के पैकेज का नाम पता नहीं है कि आप लॉन्च करना चाहते हैं तो

PackageManager pm; 
pm = getPackageManager(); 
// get a list of installed apps. 
packages = pm.getInstalledApplications(0); 

अधिक जानकारी के लिए इस लिंक को देखें Using Package Manager

+2

+1 इसकी अच्छा कोड –

+1

इस प्रक्षेपण पूरी तरह से नया उदाहरण है? मैं मौजूदा लॉन्च करना चाहता हूं। मैं उसको कैसे करू? – JohnyTex

+0

@ होनी टेक्स आपको अपनी समस्या का समाधान मिल गया है –

12

आप PackageManager वर्ग के माध्यम से लॉन्च प्रयोजन प्राप्त कर सकते हैं:

PackageManager pm = context.getPackageManager(); 
Intent launchIntent = pm.getLaunchIntentForPackage("com.example.package"); 
context.startActivity(launchIntent); 

ध्यान दें कि getLaunchIntentForPackage रिटर्न अशक्त अगर पैकेज नहीं मिला है। तो तुम एक अशक्त जांच जोड़ सकते हैं:

if (launchIntent != null) { 
    context.startActivity(launchIntent); 
} else { 
    Toast.makeText(context, "Package not found", Toast.LENGTH_SHORT).show(); 
} 
+0

यह उत्तर केवल बहुत थोड़ा अलग पुराने जवाब से, सिवाय इसके कि यह 3 साल नए है। मैं नहीं देखता कि कैसे उत्थान उचित हैं। – hBrent

संबंधित मुद्दे