2010-04-14 29 views
15

का स्वचालित इंस्टॉल मैं जानना चाहता हूं कि कार्ड पर मौजूद एपीके की प्रोग्रामेटिक रूप से इंस्टॉलेशन करना संभव है या नहीं?एपीके

+4

आपका मतलब वायरस की तरह है? –

+0

नहीं, मैं इस तरह से अपना आवेदन अपडेट करने की योजना बना रहा हूं। मेरी वेबसाइट से नया एपीके डाउनलोड करें और फिर इसे स्वचालित रूप से इंस्टॉल करें। – rantravee

+0

क्या यह चीजें पहले से ही काम करती हैं? यदि किसी उपयोगकर्ता ने "गैर-बाज़ार एप्लिकेशन इंस्टॉल करें" विकल्प चेक किया है, तो वे केवल डाउनलोड लिंक पर ब्राउज़ करें और सफल डाउनलोड पर एप्लिकेशन स्वतः इंस्टॉल हो गया है? – Samuh

उत्तर

20
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive"); 
startActivity(intent); 

(anddev.org के सौजन्य से)

+0

कभी-कभी यह काम करता है, कभी-कभी यह रिपोर्ट करता है कि यह AndroidManifest फ़ाइल नहीं ढूंढ पाता है और इंस्टालेशन – rantravee

+0

को रद्द करता है जो बताता है कि शायद आप डाउनलोड एपीके को पूरी तरह से फ़्लश करने से पहले 'स्टार्टएक्टिविटी()' कह रहे हैं फ़्लैश या कुछ। मैं एक समय में इस चरण को लागू करने का प्रयास करता हूं, जिसे आपने एपीके पर मैन्युअल रूप से एसडी कार्ड (जैसे, एडीबी पुश, डीडीएमएस फाइल मैनेजर, माउंट/ड्रैग/अनमाउंट अपनी डेवलपमेंट मशीन से) पर 'स्टार्टएक्टिविटी()' का उपयोग करने से शुरू किया है। एक बार यह जिस तरह से आप चाहते हैं काम कर रहा है, डाउनलोड तंत्र में मिश्रण। – CommonsWare

+0

असल में यह मामला है जिसके बारे में मैं बात कर रहा हूं। हालांकि मैंने देखा कि यदि एपीके एसडीकार्ड/डाउनलोड में है, तो यह स्थापित है, लेकिन अगर एसडीकार्ड में डाल दिया गया है तो यह त्रुटि उत्पन्न होगी 04-15 16: 51: 02.686: त्रुटि/फ़ाइलमैप (215): mmap (0,0) असफल: अवैध तर्क 04-15 16: 51: 02.686: WARN/zipro (215): '/sdcard/myapk.apk' को मैप करने में असमर्थ: अवैध तर्क 04-15 16: 51: 02.695: DEBUG/संपत्ति (215): ज़िप संग्रह '/sdcard/myapk.apk' खोलने में विफल रहा 04-15 16: 51: 02.695: DEBUG/filemap (215): munmap (0x0, 0) विफल होने पर भी पथ : आईएनएफओ/मायटाग (1 9 6): इंस्टालेशन पथ है: ///sdcard/myapk.apk – rantravee

0

देखें कि यह मदद कर सकता है: install Apk via Intent। यकीन नहीं है कि यह जाने का रास्ता है या नहीं।

+0

क्या आपने पहले इसका उपयोग किया है? यदि ऐसा है तो कृपया निर्दिष्ट करें कि "पैकेज", "xxx" क्या संदर्भित है? उरी installUri = Uri.fromParts ("पैकेज", "xxx", शून्य); – rantravee

+0

@ सैमुह: कोड साइट पिछली है –

4

शायद ज़रुरत पड़े किसी के लिए इस जानकारी की तलाश में है .... आप एक apk जो आप भी प्रोग्राम के रूप में डाउनलोड किया है और अपने निजी "फ़ाइलें" में संग्रहीत स्थापित करना चाहते हैं फ़ोल्डर (। यानी "/data/data/com.yourapp.name/files"), तो आपको पहले getFileStreamPath का उपयोग कर के रूप में निम्नानुसार द्वारा पूरा पथ के लिए uri प्राप्त करने की आवश्यकता:

File fullPath = getFileStreamPath("name_of_downloaded_app.apk"); 

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.fromFile(fullPath), "application/vnd.android.package-archive"); 
startActivity(intent); 

आशा इस मदद करता है ...

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