मैं एंड्रॉइड मार्केट के बाहर वितरित किए जा रहे लोगों के लिए a library to allow apps to self-update पर काम कर रहा हूं।क्या हम एक सामग्री प्रदाता से एपीके स्थापित कर सकते हैं?
मेरे मूल योजना कोड है कि आंतरिक भंडारण के लिए APK फ़ाइल डाउनलोड होगा, और फिर एक ContentProvider
और एक content://
Uri
के माध्यम से वहां से इसे स्थापित शामिल करने के लिए किया गया था। हालांकि, जब मैंने कोशिश की, तो इंस्टॉलर सिस्टम ने LogCat को "छोड़ने dir:" चेतावनी डाली और वास्तव में इसे इंस्टॉल करने में विफल रहा। एक बार जब मैंने एपीके को बाहरी स्टोरेज में डाउनलोड करने और file://
Uri
ACTION_VIEW
इंस्टॉलर Intent
के साथ स्विच करने के लिए स्विच किया, तो यह काम करता था।
"छोड़ा जा रहा है dir:" संदेश PackageParser
में parsePackage()
से लॉग इन करने की है, जो मानते हैं कि यह एक File
साथ काम कर रहा है लगता है लगता है। इससे पता चलता है कि हम content://
Uri
मानों का उपयोग नहीं कर सकते हैं।
किसी को भी सफलतापूर्वक एक application/vnd.android.package-archive
Intent
एक content://
Uri
साथ पर ACTION_VIEW
इस्तेमाल किया गया है? यदि हां, तो क्या ContentProvider
स्थापित करने में कुछ विशिष्ट चाल थी जिसने इसे काम किया?
धन्यवाद!
और यह सामग्रीप्रोवाइडर कितना उत्साहजनक रूप से दिखता है (विशेष रूप से खुलाफाइल कार्यान्वयन)? – Selvin
@ सेल्विन: 'ओपनफाइल() 'कार्यान्वयन के साथ एक' ContentProvider 'फाइलों को सेवा करने की अनुमति देने के लिए आवश्यक है, और मैंने [एक मौजूदा मामूली कार्यान्वयन जिसे मैं सामान्य रूप से जानता हूं) का उपयोग करता है (https://github.com/ आधार के रूप में commonsguy/cw-advandroid/पेड़/मास्टर/सामग्री प्रदाता/फ़ाइलें)। मेरा सवाल यह है कि क्या किसी ने इसे सफलतापूर्वक काम करने के लिए प्राप्त किया है, क्योंकि स्रोत कोड के मेरे पढ़ने से पता चलता है कि यह समर्थित नहीं है, भले ही 'ContentProvider' जैसा दिखता हो। – CommonsWare
मैंने इसे आजमाया नहीं है, लेकिन आपने यहां वर्णित विधि देखी है: http://stackoverflow.com/a/4605040/377260 –