2010-05-23 11 views
14

पर स्क्रीन चालू करना मैं स्क्रीन अनलॉक करना चाहता हूं और इसे ईवेंट ट्रिगर पर पॉपअप दिखाने के लिए इसे चालू करना चाहता हूं। मैंस्क्रीन पर प्रोग्रामिंग

newKeyguardLock = km.newKeyguardLock(HANDSFREE); 
newKeyguardLock.disableKeyguard(); 

KeyGuardService पर स्क्रीन को अनलॉक करने में सक्षम हूं लेकिन मैं स्क्रीन चालू नहीं कर सकता। मैं

wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, HANDSFREE); 
wl.acquire(); 

लेकिन बिना किसी सफलता के उपयोग कर रहा हूं। स्क्रीन अभी भी बंद है। मैं इसे कैसे प्राप्त कर सकता हूं?

उत्तर

30

आमिर का जवाब मुझे पास है, लेकिन आप कम से कम (एंड्रॉयड 2.3.3 के खिलाफ बिल्डिंग) ACQUIRE_CAUSES_WAKEUP ध्वज की जरूरत है। NullPointer जांच और समाप्ति सेट के साथ

WakeLock screenLock = ((PowerManager)getSystemService(POWER_SERVICE)).newWakeLock(
    PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG"); 
screenLock.acquire(); 

//later 
screenLock.release(); 
+0

धन्यवाद! यह मेरे लिए काम करता है – ihrupin

+0

मेरे लिए ठीक काम किया –

+0

मार्शमलो पर मेरे लिए बहुत अच्छा काम करता है। – March3April4

-1

मेरे पास एक ही समस्या है। चूंकि इन लोगों ने here पर चर्चा की, स्क्रीन चालू/बंद करने के लिए एक छिपी एपीआई है, देखें: https://android.googlesource.com/platform/frameworks/base/+/froyo-release/core/java/android/os/Power.java

लेकिन मुझे नहीं पता कि इसे कैसे कॉल करें। मैंने वास्तव में एक एप्लिकेशन को स्क्रीन चालू कर दिया है, यह सोचकर कि यह डिवाइस विशिष्ट है या नहीं।

+0

के रूप में यह accepted.i हटाया -1 है। –

2

अपने मुख्य गतिविधि के OnCreate में() कोड निम्न लिखें:

((PowerManager)getSystemService(POWER_SERVICE)).newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "TAG").acquire(); 

यह उपकरण को सक्रिय करने के लिए कारण बनता है।

disableKeyguard मत भूलना() उपकरण को अनलॉक करने ...

0

अपरिभाषित का जवाब:

private void turnOnScreen() { 
    PowerManager.WakeLock screenLock = null; 
    if ((getSystemService(POWER_SERVICE)) != null) { 
     screenLock = ((PowerManager)getSystemService(POWER_SERVICE)).newWakeLock(
       PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "TAG"); 
     screenLock.acquire(10*60*1000L /*10 minutes*/); 


     screenLock.release(); 
    } 
} 
संबंधित मुद्दे