Android 編程下與系統屏幕亮度相關的操作


部分定制的系統應用中需要去操作手機的屏幕亮度,這時候下面的代碼可以滿足改變屏幕亮度的需求:

1. 清單文件中所需要添加的權限

<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.DEVICE_POWER" />
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />

2. 操作系統屏幕亮度的相關代碼

/**
 * 獲得當前屏幕亮度的模式 SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 為自動調節屏幕亮度
 * SCREEN_BRIGHTNESS_MODE_MANUAL=0 為手動調節屏幕亮度
 */
private int getScreenMode() {
    int screenMode = 0;
    try {
        screenMode = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE);
    } catch (Exception localException) {

    }
    return screenMode;
}

/**
 * 設置當前屏幕亮度的模式 SCREEN_BRIGHTNESS_MODE_AUTOMATIC=1 為自動調節屏幕亮度
 * SCREEN_BRIGHTNESS_MODE_MANUAL=0 為手動調節屏幕亮度
 */
private void setScreenMode(int paramInt) {
    try {
        Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS_MODE, paramInt);
    } catch (Exception localException) {
        localException.printStackTrace();
    }
}

/**
 * 獲得當前屏幕亮度值 0--255
 */
private int getScreenBrightness() {
    int screenBrightness = 255;
    try {
        screenBrightness = Settings.System.getInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS);
    } catch (Exception localException) {

    }
    return screenBrightness;
}

/**
 * 設置當前屏幕亮度值 0--255
 */
private void saveScreenBrightness(int paramInt) {
    try {
        Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_BRIGHTNESS, paramInt);
    } catch (Exception localException) {
        localException.printStackTrace();
    }
}

/**
 * 保存當前的屏幕亮度值,並使之生效
 */
private void setScreenBrightness(int paramInt) {
    Window localWindow = getWindow();
    WindowManager.LayoutParams localLayoutParams = localWindow.getAttributes();
    float f = paramInt / 255.0F;
    localLayoutParams.screenBrightness = f;
    localWindow.setAttributes(localLayoutParams);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM