मैं टाइम विलंब वीडियो प्रभाव बनाने के लिए समय-समय पर एंड्रॉइड डिवाइस के कैमरे से तस्वीरें लेना चाहता हूं।एंड्रॉइड - मैं एक तस्वीर लेने के लिए एक कठिन नींद से फोन कैसे जगा सकता हूं?
मैंने अलार्म प्रबंधक के साथ एक अलार्म प्रबंधक सेट किया है। आरटीसी_WAKEUP ध्वज प्रत्येक कुछ मिनट में सेवा शुरू करने के लिए सेट है।
सेवा में आंशिक वाकेलॉक होता है, कुछ काम करता है, और फिर अलार्म मैनेजर के माध्यम से ब्रॉडकास्ट रिसीवर को कॉल करता है जो एक गतिविधि शुरू करता है।
गतिविधि बनाई गई है (या फिर से शुरू हो चुकी है), अपने स्वयं के वाकलॉक को चालू करता है, और कैमरा पूर्वावलोकन सतह सेट करता है। एक बार सतह स्थापित हो जाने के बाद SurfaceHolder श्रोता की सतह चेंज() विधि कहा जाता है, जो आखिरकार एक तस्वीर लेता है।
यदि डिवाइस जाग रहा है, तो सब कुछ पूरी तरह से अपेक्षित काम करता है। लेकिन यदि डिवाइस सो गया है, तो गतिविधि की ऑनस्यूम() विधि समाप्त होने के बाद गतिविधि तुरंत रोक दी जाती है। कैमरे की पूर्वावलोकन सतह कभी शुरू नहीं होती है, और कोई तस्वीर कभी नहीं ली जाएगी।
तो सवाल मेरे पास है कर रहे हैं:
वहाँ प्रोग्राम के रूप में फोन को जगाने के लिए कोई तरीका है? मैं भी प्रयोग करके देखें:
PowerManager powerManager = (PowerManager)this.getSystemService(Context.POWER_SERVICE); powerManager.userActivity(SystemClock.currentThreadTimeMillis(),false);
लेकिन वह फोन जाग नहीं करता है तो यह सो रहा है।
क्या पूर्वावलोकन सतह दृश्य का उपयोग किये बिना तस्वीर लेने का कोई तरीका है?
क्या ऐसी तस्वीर लेने का कोई तरीका है जो असीमित कॉलबैक पर भरोसा नहीं करता है? क्या मैं तस्वीर लेने के लिए क्रियाओं() विधि पर क्रियाओं में सभी कोड डाल सकता हूं?
क्या गतिविधि के ऑनर्यूम() विधि को लंबे समय तक चलने का कोई तरीका है ताकि कैमरे के पूर्वावलोकन में सभी श्रोताओं को प्रारंभ करने और कॉल करने के लिए पर्याप्त समय हो?
मैं wakelocks उपयोग कर रहा हूँ सही ढंग से, और मैं सब अनुमति मैनिफ़ेस्ट फ़ाइल में ठीक से सेट रहा है। मेरी गतिविधि को अतुल्यकालिक श्रोताओं के लिए उचित रूप से काम करने के लिए काफी समय तक जागृत नहीं रखा जाता है।
और इस मुद्दे को परिसर करने के लिए, मैं एंड्रॉइड 1.6 को सबकुछ रखने की कोशिश कर रहा हूं, क्योंकि यह एकमात्र टेस्ट डिवाइस है जिसकी मुझे पहुंच है।
यह निराशाजनक सामान है!
कोई कारण नहीं है कि आप अपनी सेवा में यह सब नहीं कर रहे हैं? –
इस सवाल के बाद से कुछ समय हो गया है, इसलिए मैं 100% निश्चित नहीं हूं। मुझे नहीं लगता कि फोन मुश्किल नींद में चलने पर सेवाएं चलाता है, यही कारण है कि मुझे पहले फोन उठाने के लिए अलार्म मैनेजर का उपयोग करना पड़ा। –
यदि आप सेवा चलाने के लिए प्रबंधन करते हैं (एक तरीका है) - क्या गतिविधि_ में गतिविधि _ में आपके द्वारा किए गए सभी सामानों को करने की आवश्यकता है? कारण अगर मुझे नहीं लगता कि मुझे जवाब मिला है –