2013-03-03 4 views
7
साथ काम नहीं करता

तो, एक लंबे समय मैंने सोचा कि मैं जानता था कि नींद मोड में जाने से स्क्रीन को रोकने के लिए के लिए, मैं तो बस इस कोड मेरे गतिविधि में इस्तेमाल किया:गतिविधि में स्क्रीन पर रखें - FLAG_KEEP_SCREEN_ON

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

हालांकि, मुझे एहसास हुआ कि यह केवल तभी काम करता है जब मेरा फोन "डेवलपर मोड" में था, यानी जब यूएसबी डिबगिंग (सेटिंग्स -> डेवलपर विकल्प -> यूएसबी डीबगिंग) सक्षम/चेक किया गया था। फिर उपरोक्त कोड वास्तव में सोने के लिए स्क्रीन/डिवाइस बंद कर देता है।

जब वह डिबगिंग चेक नहीं की जाती है, तो मेरी स्क्रीन सो जाती है जैसे कि कल कोई नहीं है। मैं अपने डिवाइस पर एंड्रॉइड 4.04 चला रहा हूं, और

android:minSdkVersion="12" 
android:targetSdkVersion="16" 

किसी ने इस मुद्दे के बारे में सुना है?

संपादित

मैं, Commonswares सुझाव के साथ परीक्षण किया है, और कोड को setKeepScreenOn() को शामिल किया है, तो यह इस तरह दिखता है:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
View root = findViewById(android.R.id.content); 
if (root != null) 
    root.setKeepScreenOn(true); 

मैं भी जाँच की है ताकि इस कोड है वास्तव में निष्पादित, और यह है। लेकिन यह एक चीज नहीं बदलता है ...

+0

बीमार यह कोशिश करते हैं, लेकिन ऐसा लगता है कि FLAG_KEEP_SCREEN_ON भले ही एप्लिकेशन ग्रहण के माध्यम से "तैनात" है काम हो सकता है, लेकिन * नहीं * अगर मैं गूगल से ठीक उसी कोड खेलते हैं डाउनलोड करें। और फिर भी, नेट पर "हर कोई बाहर" कहता है कि FLAG_KEEP_SCREEN_ON काम करता है ... मैं इस मुद्दे के साथ एकमात्र नहीं हो सकता? – Ted

+0

चूंकि मैंने कभी भी 'FLAG_KEEP_SCREEN_ON' का उपयोग नहीं किया है, और केवल कभी भी' setKeepScreenOn() '(जैसा कि यह आसान है) का उपयोग किया है, मैं आपके 'FLAG_KEEP_SCREEN_ON' कोड की प्रभावकारिता के बारे में टिप्पणी नहीं कर सकता। – CommonsWare

+0

ठीक है, यह सेटकिपस्क्रीनऑन() के साथ भी काम नहीं करता है। – Ted

उत्तर

1

मुझे एक ही समस्या का सामना करना पड़ रहा था, मैं अपनी परियोजना के लिए एक गतिविधि का उपयोग कर रहा था और अन्य सभी स्क्रीन टुकड़े हैं तो मैंने मुख्य गतिविधि में android:keepScreenOn="true" का उपयोग किया।

कृपया इसका उपयोग करने का प्रयास करें और मुझे बताएं कि आपको अपना इच्छा परिणाम नहीं मिला है।

धन्यवाद।

1

केवल मेरे समाधान में जो वास्तविक काम करता है वह मुख्य अनुप्रयोग वर्ग में वेक लॉक है। दुर्भाग्य से SCREEN_BRIGHT_WAKE_LOCK ध्वज बहिष्कृत है!

public class MyApp extends Application { 
    PowerManager.WakeLock screenOnWakeLock; 
    @Override 
    public void onCreate() { 
     super.onCreate(); 
     PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); 
     wakeLock = powerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK,"ScreenlockTag"); 
     wakeLock.acquire(); 
    } 

    @Override 
    public void onTerminate() 
    { 
     if (screenOnWakeLock != null && screenOnWakeLock.isHeld()) 
      screenOnWakeLock.release(); 
     super.onTerminate(); 
    } 
} 
संबंधित मुद्दे