2011-11-23 13 views
6

मैं एंड्रॉइड में होम स्क्रीन पर देखे गए अनुप्रयोगों की एक सूची बनाना चाहता हूं।एंड्रॉइड में होम स्क्रीन पर देखे गए एप्लिकेशन के नाम कैसे प्राप्त करें?

वर्तमान में मैं निम्नलिखित कोड का उपयोग कर रहा:

List<ApplicationInfo> packs = pm.getInstalledApplications(0); 

लेकिन यह सब स्थापित अनुप्रयोगों रिटर्न, लेकिन मैं केवल होम स्क्रीन पर माउस होने अनुप्रयोगों की आवश्यकता है।

यह कैसे किया जा सकता है?

किसी भी मदद की सराहना की।

+1

क्या आप गैर-मानक लॉन्चर्स के उपयोगकर्ताओं को समायोजित करने की योजना बना रहे हैं? सेंस और टचविज़ के लिए देखें जो बहुत सारे फोन पर मानक के रूप में आते हैं। – Emyr

+0

"होम स्क्रीन" एंड्रॉइड में एक मानक अवधारणा नहीं है। जैसा कि @Emyr ने कहा, बहुत से लोग विभिन्न लॉन्चर प्रतिस्थापन का उपयोग कर रहे हैं, इसलिए उनके घर के सामान "स्टॉक" के समान नहीं हैं। और प्रत्येक लॉन्चर के पास होम स्क्रीन पर प्रदर्शित होने वाले स्टोर को संग्रहीत करने का अपना तरीका होता है। – Guillaume

उत्तर

0

अब आपके पास अपने डिवाइस पर स्थापित संकुलों की सूची है, उनके माध्यम से पुन: प्रयास करें और प्रत्येक आइटम पर getLaunchIntentForPackage() पर कॉल करें।

यदि कोई वैध इरादा वापस किया जाता है, तो यह लॉन्चर पर मौजूद है, अन्यथा अगर शून्य वापस आती है, तो पैकेज लॉन्चर स्क्रीन से लॉन्च नहीं होता है। ध्यान दें कि होम स्क्रीन शॉर्टकट लॉन्चर ऐप्स का सबसेट है।

+0

धन्यवाद। मैंने वही किया है। लेकिन यह कुछ संकुलों पर एक सिस्टम अपवाद देता है। इसे कैसे हल किया जा सकता है? – Sandeep

+1

दस्तावेज़ कहता है कि यह रिटर्न इन्टेंट वापस कर देगा जिसका उपयोग मुख्य गतिविधि को लॉन्च करने के लिए किया जा सकता है। तो आमतौर पर सभी ऐप्स में 1 लॉन्चर होता है। इसलिए मुझे नहीं लगता कि यह काम करेगा ........ क्या आपने कभी यह कोशिश की ?? –

+0

@Shail यह 'CATEGORY_LAUNCHER' के लिए इरादा देता है। यदि कोई गतिविधि '<श्रेणी एंड्रॉइड: name = "android.intent.category.LAUNCHER" /> के अंतर्गत आती है तो वे लॉन्चर पर दिखाई देंगे। ' – Reno

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