2010-11-20 2 views
8

स्क्रीन_ऑन द्वारा प्रसारण रिसीवर सक्रिय होने पर मैं कीगार्ड को कैसे अक्षम कर सकता हूं, ताकि जब ऐसा होता है तो उपयोगकर्ता उस गतिविधि को देखता है जिसे मैंने इसके पीछे शुरू किया है? (गतिविधि पहले से ही चल रहा है ...)कुंजीगार्ड को अक्षम करने और SCREEN_ON के प्राप्तकर्ता को ट्रिगर होने पर उपयोगकर्ता को गतिविधि प्रदर्शित करने के लिए कैसे करें?

मैं एक प्रसारण रिसीवर स्क्रीन बंद से चालू होने से निम्न कोड कोशिश कर रहे हैं ...

KeyguardManager myKeyGuard = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); 
myLock = myKeyGuard.newKeyguardLock(); 
myLock.disableKeyguard(); 

यह है जैसे कि काम नहीं लगता है यह है। जब मैं स्क्रीन चालू करता हूं, तब भी मुझे इसके पीछे की गतिविधि को प्रकट करने के लिए फोन पर कीगार्ड को मैन्युअल रूप से अनलॉक करना होगा।

+0

मैं कुछ कोड में आया हूं जो इसके अलावा बाहर निकलने के लिए उपयोग किया गया है। मैं इसे अभी तक काम करने में सक्षम नहीं हूं, हालांकि अब मैं अपनी गतिविधि के लिए ध्वज FLAG_DISMISS_KEYGUARD सेट कर रहा हूं। – Ryan

+0

रयान, क्या आप अपना कोड साझा कर सकते हैं। मैं भी उसी पर काम कर रहा हूं। – Manikandan

उत्तर

1

मुझे लगता है कि मैंने यह पता लगाया कि मैंने क्या किया है। ऐसा लगता है कि disabled_keyguard अनुमति का उपयोग करते समय यह मेरे मैनिफेस्ट में सिर्फ एक टैग त्रुटि थी। यह सही ढंग से काम कर रहा है कि मैंने मैनिफेस्ट को सही किया।

+0

यह अनुमति जोड़ना मेरे लिए काम नहीं करता है। जब उपयोगकर्ता अनलॉक बटन दबाता है तो मुझे अपनी गतिविधि चलाने की आवश्यकता होती है। अनलॉक स्क्रीन से पहले गतिविधि ट्रिगर करनी चाहिए। – Manikandan

5

मैं खिड़की के झंडे को बर्खास्त करने के लिए अनुशंसा करता हूं या show_when_locked अगर आपके पास एक खिड़की है जिसे वेक अप पर लॉकस्क्रीन के शीर्ष पर आने की आवश्यकता है।

http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#FLAG_SHOW_WHEN_LOCKED

आप इस प्रकार हैं (स्थापित करने से पहले लेआउट onCreate में कहा जाता है) है

getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
+6

मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन झंडे मेरे लिए काम नहीं करते थे इससे कोई फर्क नहीं पड़ता कि मैंने उन्हें कहां रखा है, दूसरी ओर कीगार्ड मैनेजर हमेशा काम करता है। अन्य पाठकों के लिए नोट करने के लिए बस एक बिंदु – Idistic

+0

यह सच है कि झंडे का उपयोग करना 'अनुशंसित' समाधान है, हालांकि, आप पाएंगे कि वे वास्तविक जीवन के उपयोग में बिल्कुल सही हैं। उदाहरण के लिए, फ्लैग एंड्रॉइड के साथ फोकस से गतिविधि को स्थानांतरित करते समय संक्षेप में कीगार्ड को 'फ्लैश' कर देगा। यह मामूली है, लेकिन grating। कीगार्ड को अक्षम करने में पूरी तरह से समस्या नहीं है। –

+0

ध्यान रखें कि गतिविधि पारदर्शी नहीं हो सकती है। साथ ही, आप झंडे को सेट करने के लिए dialog.getWindow() का उपयोग नहीं कर सकते हैं। यह शायद किसी एप्लिकेशन को अन्य अनुप्रयोगों से आंशिक रूप से 'शो' गतिविधियों की अनुमति नहीं दे सकता है। इस समस्या को https://code.google.com/p/android/issues/detail?id=8778 देखें – aaronvargas

1

मैं कीगार्ड समाधान काम नहीं दिखाई दे रहा है (और यह बहिष्कार किया गया है) का उपयोग कैसे करें। मेरे लिए क्या काम करता है स्थायी स्थायी PARTIAL_WAKE_LOCK जिसे मैं कभी नहीं छोड़ता हूं। यह डिवाइस को वास्तव में सोने से रोकता है और इस प्रकार सक्रिय होने वाले लॉक-स्क्रीन से बचाता है।

फिर जब भी स्क्रीन बंद हो जाती है, तो मैं उस अधिसूचना को सुनता हूं और डिवाइस को बैक अप लेता हूं। यह उन सभी उपकरणों पर काम करता है जिन पर मैंने परीक्षण किया है।

मुझे एहसास है कि यह डिवाइस की बैटरी को बहुत तेजी से मार देगा, इसलिए, आपको इसे बहुत कम और दिमागी तरीके से उपयोग करना होगा।

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

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