android应用中读取屏幕亮度、设置屏幕亮度、保持屏幕常量

应用中读取、设置屏幕亮度

package com.catcher.testcompass;

import android.app.Activity;
import android.os.Bundle;
import android.provider.Settings;
import android.provider.Settings.SettingNotFoundException;
import android.provider.Settings.System;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

public class ThreeActivity extends Activity {
    private EditText etBrightness;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_third);
        etBrightness = (EditText) findViewById(R.id.editText1);
    }
    
    public void getBrightness(View view){
        Toast.makeText(this, "亮度="+getScreenBrightness(), Toast.LENGTH_SHORT).show();
    }
    
    public void setBrightness(View view){
        int brightness=Integer.parseInt(etBrightness.getText().toString());
        if (brightness>255) {
            etBrightness.setError("不能超过255");
            return;
        }
        setScreenBrightness(brightness);
    }
    
    public void setScreenBrightness(int brightness){
        //如果是自动调整亮度则先换成手动调整再设置亮度
        try {
            if (Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC==Settings.System.getInt(getContentResolver(), System.SCREEN_BRIGHTNESS_MODE)) {
                Settings.System.putInt(getContentResolver(), System.SCREEN_BRIGHTNESS_MODE,System.SCREEN_BRIGHTNESS_MODE_MANUAL);
            }
        } catch (SettingNotFoundException e) {
            e.printStackTrace();
        }
        Settings.System.putInt(getContentResolver(), System.SCREEN_BRIGHTNESS, brightness);
    }
    
    public int getScreenBrightness(){
        int brightness=-1;
        try {
            brightness=Settings.System.getInt(getContentResolver(), System.SCREEN_BRIGHTNESS);
        } catch (SettingNotFoundException e) {
            e.printStackTrace();
        }
        return brightness;
    }
}

AndroidManifest.xml还需要添加权限

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

布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:keepScreenOn="true"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/editText1"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:ems="10"
            android:hint="请输入0-255的整数"
            android:inputType="number" />

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="setBrightness"
            android:text="设置亮度" />
    </LinearLayout>

    <Button
        android:id="@+id/button2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:onClick="getBrightness"
        android:text="显示亮度" />

</LinearLayout>

其中 android:keepScreenOn="true" 可以保持屏幕常量。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。