Adnroid 화면 밝기 조절 - 지정된 값으로 설정하고 원래 값으로 복원

응용 장면: 핸드폰에 바코드 사진 한 장이 있는데 스캔 장치로 스캔해야 한다.휴대전화 화면이 너무 어두울 때 식별도가 낮기 때문에 바코드 이미지가 있는 인터페이스로 전환할 때 화면을 밝게 하면 코드 검사 장치가 식별하기 편리하다고 생각한다.이 인터페이스를 떠날 때 사용자가 원래 설정한 화면 밝기 조절 모드와 화면 밝기 값을 복원합니다.
1. 현재 화면 밝기 조절 모드 값과 화면 밝기 값을 저장한다.
 /*
                     *             
                     * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1          
                     * SCREEN_BRIGHTNESS_MODE_MANUAL=0          
                     */
                     screenMode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
                     Log.i(TAG, "screenMode = " + screenMode);
                     
                     //           0--255
                     screenBrightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
                     Log.i(TAG, "screenBrightness = " + screenBrightness);

2. 현재 화면 밝기 조절 모드 값과 화면 밝기 값을 변경합니다.
 //                     ,           
                     if(screenMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC){
                         setScreenMode(Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
                     }
                     
                     //            255
                     setScreenBrightness(255.0F);

3. 떠날 때 현재 화면 밝기 조절 모드 값과 화면 밝기 값을 복원합니다.
  //            
                    setScreenBrightness(screenBrightness);
                    //                 
                    setScreenMode(screenMode);

4. 필요한 권한:
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

5. 전체 코드:
package com.easipass.setting.screen.luminance;

import android.app.Activity;
import android.os.Bundle;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;

/**
 *     :                      
 * 
 * @author android_ls
 */
public class SettingScreenLuminanceActivity extends Activity {

    private static final String TAG = "ScreenLuminance";

    /**
     *           
     */
    private int screenMode;

    /**
     *         0--255
     */
    private int screenBrightness;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        //          
        super.findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                try {
                    /*
                     *             
                     * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1          
                     * SCREEN_BRIGHTNESS_MODE_MANUAL=0          
                     */
                    screenMode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
                    Log.i(TAG, "screenMode = " + screenMode);

                    //           0--255
                    screenBrightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
                    Log.i(TAG, "screenBrightness = " + screenBrightness);

                    //                     ,           
                    if (screenMode == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) {
                        setScreenMode(Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
                    }

                    //            255
                    setScreenBrightness(255.0F);

                } catch (SettingNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            }
        });

        //        
        super.findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                //            
                setScreenBrightness(screenBrightness);
                //                 
                setScreenMode(screenMode);
            }
        });

    }

    /**
     *             
    * SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1          
    * SCREEN_BRIGHTNESS_MODE_MANUAL=0          
    */
    private void setScreenMode(int value) {
        Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, value);
    }

    /**
    *           0--255,     
    */
    private void setScreenBrightness(float value) {
        Window mWindow = getWindow();
        WindowManager.LayoutParams mParams = mWindow.getAttributes();
        float f = value / 255.0F;
        mParams.screenBrightness = f;
        mWindow.setAttributes(mParams);

        //           
        Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, (int) value);
    }

}

좋은 웹페이지 즐겨찾기