Screen Brightness in Android can be controlled programmatically in simple way. This tutorial explains the process with an example. Native brightness control in Android device has a Seekbar that adjust the screen brightness. The below tutorial has UI in a similar way.You take a look at SeekBar tutorial here if needed.
android.provider.Settings.System - This class contains miscellaneous system preferences. There are convenience functions for accessing individual system settings.
android.provider.Settings.System.getInt - Convenience function for retrieving a single system settings value as an integer. Note that internally setting values are always stored as strings; this function converts the string to an integer for you. The default value will be returned if the setting is not defined or not an integer.
android.provider.Settings.System.SCREEN_BRIGHTNESS - String that holds Screen Brightness value ranging from 0 to 255.
Get Current Screen_Brightness Value
The above functions and constants can be used to get screen brightness as shown in the code snippet.This example has a seekbar defined with maximum value as 255, since the screen brightness constant varies from 0 to 255.
float curBrightnessValue = 0;
curBrightnessValue=android.provider.Settings.System.getInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS);
The obtained value should be set to setProgress method of seekbar as shown below ,
seekBar.setProgress(screen_brightness);
Set/Put Screen_Brightness Value
In the same way as get, we can also put value to set Screen_Brightness as shown in the below code snippet
android.provider.Settings.System.putInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS, progress);
progress is the current SeekBar progress, in this way SeekBar and Screen_Brightness will be synced.
Android Permission to Change Screen Brightness
Since we are modifying system settings we need to add permissions in AndroidManifest.xml to modify Screen_Brightness.
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
activity_main.xml
MainActivity.java
AndroidManifest.xml
Source code of this Application :
Androd_AdjustScreenBrightness.zip
android.provider.Settings.System - This class contains miscellaneous system preferences. There are convenience functions for accessing individual system settings.
android.provider.Settings.System.getInt - Convenience function for retrieving a single system settings value as an integer. Note that internally setting values are always stored as strings; this function converts the string to an integer for you. The default value will be returned if the setting is not defined or not an integer.
android.provider.Settings.System.SCREEN_BRIGHTNESS - String that holds Screen Brightness value ranging from 0 to 255.
Get Current Screen_Brightness Value
The above functions and constants can be used to get screen brightness as shown in the code snippet.This example has a seekbar defined with maximum value as 255, since the screen brightness constant varies from 0 to 255.
float curBrightnessValue = 0;
curBrightnessValue=android.provider.Settings.System.getInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS);
The obtained value should be set to setProgress method of seekbar as shown below ,
seekBar.setProgress(screen_brightness);
Set/Put Screen_Brightness Value
In the same way as get, we can also put value to set Screen_Brightness as shown in the below code snippet
android.provider.Settings.System.putInt(getContentResolver(), android.provider.Settings.System.SCREEN_BRIGHTNESS, progress);
progress is the current SeekBar progress, in this way SeekBar and Screen_Brightness will be synced.
Android Permission to Change Screen Brightness
Since we are modifying system settings we need to add permissions in AndroidManifest.xml to modify Screen_Brightness.
<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<SeekBar
android:id="@+id/seekBar1"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="26dp"
android:max="10" />
</RelativeLayout>
MainActivity.java
package com.example.android_adjustbrightness;
import android.os.Bundle;
import android.provider.Settings.SettingNotFoundException;
import android.app.Activity;
import android.view.Menu;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
public class MainActivity extends Activity {
private SeekBar seekBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
seekBar = (SeekBar) findViewById(R.id.seekBar1);
seekBar.setMax(255);
float curBrightnessValue = 0;
try {
curBrightnessValue = android.provider.Settings.System.getInt(
getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS);
} catch (SettingNotFoundException e) {
e.printStackTrace();
}
int screen_brightness = (int) curBrightnessValue;
seekBar.setProgress(screen_brightness);
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
int progress = 0;
@Override
public void onProgressChanged(SeekBar seekBar, int progresValue,
boolean fromUser) {
progress = progresValue;
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// Do something here,
// if you want to do anything at the start of
// touching the seekbar
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
android.provider.Settings.System.putInt(getContentResolver(),
android.provider.Settings.System.SCREEN_BRIGHTNESS,
progress);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android_adjustbrightness"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" >
</uses-permission>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.android_adjustbrightness.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Source code of this Application :
Androd_AdjustScreenBrightness.zip
No comments :
Post a Comment