इसे संभालने के कुछ तरीके हैं। यदि आपकी मुख्य आवश्यकता हर बार जब आप दोबारा संपादित करते हैं तो अपना आवेदन जल्दी से शुरू करने में सक्षम होना है, तो adb shell am intent -n com.example.app/.App
सबसे आसान समाधान है।
यदि आप केवल शॉर्टकट बनाना चाहते हैं (और आपको परवाह नहीं है) com.android.launcher.action.INSTALL_SHORTCUT
का उपयोग करें क्योंकि हर कोई कहता है। ऐसा करने के लिए आपको एक ऐप या बिन की आवश्यकता होगी क्योंकि प्रसारण प्रसारण नेस्टेड इरादों को नहीं लेगा।
यदि आप एक विशिष्ट लॉन्चर (जैसे एडीडब्ल्यू लॉन्चर) के साथ काम कर रहे हैं तो आप शॉर्टकट के डेटाबेस को हैक कर सकते हैं। यह आपको (इस मामले में [2, 3]) शॉर्टकट के निर्देशांक निर्दिष्ट करने के लिए
adb shell sqlite3 /data/data/org.adw.launcher/databases/launcher.db "DELETE FROM favorites WHERE _id=1; INSERT INTO favorites VALUES(1,'MyApp','#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10200000;component=com.example.app/.App;end',-100,0,2,3,1,1,0,-1,NULL,0,NULL,NULL,NULL,NULL,NULL);"
आप डेटाबेस से ताज़ा करने के लिए लांचर बताना होगा की अनुमति देगा। आमतौर पर लॉन्चर को मारने का एकमात्र तरीका है। बाद के संस्करणों (ActivityManager खोल कमांड) के बाद के संस्करणों में पैकेज को पुनरारंभ करने के विकल्प हैं, पहले के संस्करण नहीं हैं। लेकिन
ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
am.restartPackage("org.adw.launcher");
वहाँ अपेक्षाकृत अच्छी तरह से प्रलेखित 'com.android.launcher.action.INSTALL_SHORTCUT', कि तुम' adb शेल broadcast' के माध्यम से कह सकते हैं है, एक: उस मामले में आप एक छोटे एप्लिकेशन लिखने के लिए आवश्यकता होगी अतिरिक्त का लॉन्च-इरादा है। यदि आप इसे कमांड लाइन पर नहीं डाल सकते हैं, तो आप एक स्टब-एप लिख सकते हैं जो उस इरादे को प्रसारित करने के अलावा कुछ भी नहीं करता है, और उसके बाद इसे इंस्टॉल करता है, इसे आमंत्रित करता है, और इसे कमांड लाइन से अनइंस्टॉल करता है। – 323go