2012-10-23 15 views
14

मुझे अपने एप्लिकेशन से गतिविधि लॉन्च करने के लिए लॉन्चर गतिविधि का नाम प्राप्त करने की आवश्यकता है। कोई समाधानलॉन्चर प्राप्त करें एंड्रॉइड एप्लिकेशन का गतिविधि नाम

+0

ComponentName नाम = नए ComponentName (पैकेज, launcheractivity); \t \t \t \t इरादा मैं = नया इरादा (इरादा.एक्शन_एमआईएन); i.addCategory (Intent.CATEGORY_LAUNCHER); i.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK \t | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); i.setComponent (नाम); _context.start सक्रियता (i); यहां मैं घटक नाम के लिए लॉन्च्रेक्टिविटी का नाम चाहता हूं .. – user1767260

+0

किसी विशिष्ट ऐप या सभी इंस्टॉल किए गए ऐप्स की लॉन्चर गतिविधि? –

+0

इंस्टॉल किए गए ऐप्स की लॉन्चर गतिविधि – user1767260

उत्तर

20

उपयोग निम्नलिखित कोड सभी संकुल की लांचर गतिविधि प्राप्त करने के लिए:

 final PackageManager pm = getPackageManager(); 

     Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); 
     mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); 

     List<ResolveInfo> appList = pm.queryIntentActivities(mainIntent, 0); 
     Collections.sort(appList, new ResolveInfo.DisplayNameComparator(pm)); 

     for (ResolveInfo temp : appList) { 

      Log.v("my logs", "package and activity name = " 
        + temp.activityInfo.packageName + " " 
        + temp.activityInfo.name); 


     } 
+0

मेरे लिए यह काम धन्यवाद –

44

देर लेकिन बेहतर तरीका यह सही इरादे शुरू करने के लिए एक गतिविधि

PackageManager pm = getPackageManager(); 
Intent intent=pm.getLaunchIntentForPackage(pacakgeName); 
startActivity(intent); 
8

भी दे देंगे हालांकि ऊपर दिए गए उत्तर सीधे ओपी के प्रश्न का उत्तर देते हैं, मैं अपने दो सेंट जोड़ना चाहता हूं:

/** Backwards compatible method that will clear all activities in the stack. */ 
public void startLauncherActivity(Context context) { 
    PackageManager packageManager = context.getPackageManager(); 
    Intent intent = packageManager.getLaunchIntentForPackage(context.getPackageName()); 
    ComponentName componentName = intent.getComponent(); 
    Intent mainIntent = IntentCompat.makeRestartActivityTask(componentName); 
    context.startActivity(mainIntent); 
} 

यहां मुझे न केवल एप्लिकेशन की लॉन्चर गतिविधि मिलती है, बल्कि गतिविधियों के सभी बैकस्टैक को भी साफ़ कर रहा है (जो कि लॉन्चर गतिविधि को ट्रिगर करते समय मुझे वास्तव में जरूरी था)। उदाहरण के लिए समाप्त हो चुके लेख टोकन के मामले में मैं इसे कॉल करता हूं।

खास बात अन्यथा एक Intent झंडा Intent.FLAG_ACTIVITY_CLEAR_TASK है, जो केवल एपीआई में शुरू की है का सहारा लेना पड़ता है, IntentCompat उपयोग करने के लिए है 11.

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