2011-10-09 28 views
7

आप अपनी गतिविधि की वर्तमान स्क्रीन चमक कैसे प्राप्त करते हैं?एंड्रॉइड में स्क्रीन चमक मूल्य

के बाद विधि setBrightness(100) फोन करके अधिकतम चमक स्थापित करने के लिए ठीक काम करता है:

private void setBrightness(int brightness) { 
    WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); 
    layoutParams.screenBrightness = brightness/100.0f; 
    getWindow().setAttributes(layoutParams); 
} 

इम निम्नलिखित हासिल करने की कोशिश:

  1. प्रारंभ गतिविधि और वर्तमान चमक मूल्य को बचाने
  2. अधिकतम
  3. प्रारंभिक बनाम चमक को सेट करें कुछ घटनाओं के आधार पर

बहुत धन्यवाद!

+0

सेट करने से पहले layoutParams.screenBrightness का मूल्य क्या है? – ZelluX

उत्तर

15

int curBrightnessValue = android.provider.Settings.System.getInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS); 

और फिर

WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); 
    layoutParams.screenBrightness = curBrightnessValue/100.0f; 
    getWindow().setAttributes(layoutParams); 
+1

बहुत धन्यवाद मिशेल! यह एक कोशिश/पकड़ ब्लॉक – lukuluku

+0

@Michele के साथ असाइनमेंट के आसपास पूरी तरह से ठीक काम किया: पहली पंक्ति क्यों चलाता है? मैंने लिंट लिखा "int curBrightnessValue = ..." लेकिन यह काम नहीं करता है। वैसे, क्या चमक के लिए अनुमति है? –

+0

@Michele धन्यवाद, हाँ मैं आपका बयान संपादित करता हूं और यह सच चलाता है। "अंतिम int स्तर = सेटिंग्स। सिस्टम .getInt (getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS, -1); " –

2

रीसेट करने के लिए चमक का प्रयास करें डिफ़ॉल्ट मान पर

WindowManager.LayoutParams layoutParams = getWindow().getAttributes(); 
layoutParams.screenBrightness = -1f; 
getWindow().setAttributes(layoutParams); 

0 से कम, डिफ़ॉल्ट मान, पसंदीदा स्क्रीन का उपयोग करने के लिए इसका मतलब है चमक।

देखें http://developer.android.com/reference/android/view/WindowManager.LayoutParams.html#screenBrightness

+0

सेट किया है तो मुझे कोई समस्या नहीं है! इसमें अधिक अपवर्तक कैसे नहीं हैं? – avalancha

0

मैं एंड्रॉयड पर इस का उपयोग 17+ (शायद/कम एपीआई w काम करता है)

private void setScreenBrightnessTo(float brightness) { 
     WindowManager.LayoutParams lp = getActivity().getWindow().getAttributes(); 
     if (lp.screenBrightness == brightness) { 
      return; 
     } 

     lp.screenBrightness = brightness; 
     getActivity().getWindow().setAttributes(lp); 
    } 

Usages:

मैक्स चमक के लिए स्क्रीन सेट करने के लिए (उदाहरण के लिए कब प्रदर्शित एक बारकोड या कुछ और):

setScreenBrightnessTo(BRIGHTNESS_OVERRIDE_FULL);

जो कुछ उपयोगकर्ता पहले था वापस करने के लिए रीसेट करने के लिए:

setScreenBrightnessTo(BRIGHTNESS_OVERRIDE_NONE);

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