2013-01-19 11 views
5

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

अग्रिम धन्यवाद

+1

वहाँ अपेक्षाकृत अच्छी तरह से प्रलेखित 'com.android.launcher.action.INSTALL_SHORTCUT', कि तुम' adb शेल broadcast' के माध्यम से कह सकते हैं है, एक: उस मामले में आप एक छोटे एप्लिकेशन लिखने के लिए आवश्यकता होगी अतिरिक्त का लॉन्च-इरादा है। यदि आप इसे कमांड लाइन पर नहीं डाल सकते हैं, तो आप एक स्टब-एप लिख सकते हैं जो उस इरादे को प्रसारित करने के अलावा कुछ भी नहीं करता है, और उसके बाद इसे इंस्टॉल करता है, इसे आमंत्रित करता है, और इसे कमांड लाइन से अनइंस्टॉल करता है। – 323go

उत्तर

7

इसे संभालने के कुछ तरीके हैं। यदि आपकी मुख्य आवश्यकता हर बार जब आप दोबारा संपादित करते हैं तो अपना आवेदन जल्दी से शुरू करने में सक्षम होना है, तो 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"); 
+0

क्या होगा यदि मैं कोड द्वारा शॉर्टकट बनाना चाहता हूं, एक विशिष्ट लांचर ऐप और इसके भीतर एक विशिष्ट गतिविधि? –

+0

उपरोक्त सभी कोड एक विशिष्ट ऐप के भीतर एक विशिष्ट गतिविधि का संदर्भ लेते हैं। मुझे केवल एडीडब्ल्यू के साथ अनुभव है, अन्य लॉन्चर्स को निस्संदेह डेटाबेस को कहीं भी स्टोर करना होगा। – Renate

+0

हां, मैंने इसके बारे में एक पोस्ट बनाई है। यहां: http://stackoverflow.com/questions/21394477/how-to-create-a-shortcut-of-an-app-on-a- विशिष्ट-launcher-app। टिप्पणियों में से एक जवाब है। –

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