Eric Bergman-Terrell's Blog

Android Programming Tip: Light Sensor is Disabled on Kindle Fire
February 26, 2012

I just got a new case for my Kindle Fire. It's pretty good for the US $22.70 that I paid for it (including shipping).

The case has a large circular hole in the top, left corner. After doing some research, I found that this hole is for the Kindle Fire's ambient light sensor. My Kindle is running version 6.2.2_user3205220 of the operating system, and the light sensor is not used to automatically control the display brightness, even though Amazon's FAQ states that a light sensor is supported.

I had hoped to write an app to address this issue, but the light sensor appears to be completely disabled, at least in operating system version that I'm running. I hope Amazon will see the light, and correct this issue in the future.

Here's the code I wrote to determine if the light sensor is accessible:

package com.ericbt.AutoDimmer;

import java.util.List;

import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.util.Log;

public class AutoDimmerActivity extends Activity {
	private SensorManager sensorManager;
	private SensorEventListener sensorEventListener;
	private Sensor lightSensor;
    public void onCreate(Bundle savedInstanceState) {

	protected void onPause() {
		Log.i("AutoDimmer", "onPause");
		sensorManager.unregisterListener(sensorEventListener, lightSensor);

	protected void onResume() {
		Log.i("AutoDimmer", "onResume");

		sensorManager.registerListener(sensorEventListener, lightSensor, SensorManager.SENSOR_DELAY_UI);
	private void initialize() {
		Log.i("AutoDimmer", "initialize");
		if (sensorManager == null) {
			Log.i("AutoDimmer", "initialize, initializing");
	        sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
	        lightSensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
	        List allSensors = sensorManager.getSensorList(Sensor.TYPE_ALL);
	        for (Sensor sensor : allSensors) {
	        	Log.i("AutoDimmer", String.format("Sensor: %s %d", sensor.getName(), sensor.getType()));
	        if (lightSensor == null) {
	        	Log.i("AutoDimmer", "Light Sensor: NULL");
	        else {
		        Log.i("AutoDimmer", String.format("Light Sensor: %s %s", lightSensor.getName(), lightSensor.getVendor()));
		        sensorEventListener = new SensorEventListener() {
					public void onSensorChanged(SensorEvent event) {
						StringBuilder message = new StringBuilder("onSensorChanged ");
						for (float value : event.values) {
							message.append(' ');
						Log.i("AutoDimmer", message.toString());
					public void onAccuracyChanged(Sensor sensor, int accuracy) {
						Log.i("AutoDimmer", "onAccuracyChanged");


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=""
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="7" />
    <uses-permission android:name="android.hardware.sensor.light"/>

        android:label="@string/app_name" >
            android:label="@string/app_name" >
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />


Four sensors are accessible to the app, but not the ambient light sensor:

Kindle Fire Sensors

Keywords: Android, Kindle Fire, Amazon, Sensors, Light Sensor, Sensor.TYPE_LIGHT, 6.2.2_user3205220

Reader Comments

Comment on this Blog Post

Recent Posts

Disable "Visual Voicemail" on Android / T-MobileJanuary 17, 2016
IPv6 HumorDecember 10, 2015
Java Programming Tip: Specify the JVM time zoneDecember 7, 2015
Node.js / Express Programming Tip: Detect and Fix Memory LeaksOctober 27, 2015
Spider Spins a Web of Deceit?October 26, 2015
Node.js / Express Programming Tip: LoggingOctober 18, 2015
Javascript / HTML Tip: How to Programmatically Copy Text from a Web Page to the ClipboardOctober 7, 2015