Keyboard backlight control

Discussion in 'Motorola Droid Pro' started by PCweber, Nov 30, 2010.

  1. PCweber

    PCweber New Member

    Joined:
    Apr 2, 2010
    Messages:
    22
    Likes Received:
    0
    Trophy Points:
    1
    Ratings:
    +0
    So, I was laying in bed last night and got a text. Went to reply and the keyboard backlight was not on. (screen was) I tried changing the display birghtness, etc. Is there an absolute way to trigger the keyboard backlight?
     
  2. bwhite757

    bwhite757 Member

    Joined:
    Nov 8, 2009
    Messages:
    181
    Likes Received:
    0
    Trophy Points:
    16
    Ratings:
    +0
    Lock/Unlock the phone. Mine's done it a couple of times. I'm assuming it's a bug in Kernel.
     
  3. google123

    google123 Member

    Joined:
    Sep 23, 2010
    Messages:
    471
    Likes Received:
    0
    Trophy Points:
    16
    Ratings:
    +0
    My screen flickered on and off one time when I unplugged the power cable. Pressed the power button a couple of times and it hasn't done it again.

    Sent from my DROID PRO using DroidForums App
     
  4. elmvly

    elmvly New Member

    Joined:
    Feb 29, 2012
    Messages:
    9
    Likes Received:
    0
    Trophy Points:
    1
    Ratings:
    +0
    I want to control Keyboard backlight manually . Any suggestions?
    I've already tried apps like adjbrightness, backlight off etc, none of them worked.
    Luckily, I found FBReader could turn my the backlight off only in reading mode,but I don't understand the code. Please help .

    Code:
    /*
     * Copyright (C) 2007-2012 Geometer Plus <contact@geometerplus.com>
     *
     * This program is free software; you can redistribute it and/or modify
     * it under the terms of the GNU General Public License as published by
     * the Free Software Foundation; either version 2 of the License, or
     * (at your option) any later version.
     *
     * This program is distributed in the hope that it will be useful,
     * but WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     * GNU General Public License for more details.
     *
     * You should have received a copy of the GNU General Public License
     * along with this program; if not, write to the Free Software
     * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
     * 02110-1301, USA.
     */
    
    package org.geometerplus.zlibrary.ui.android.library;
    
    import java.io.*;
    import java.util.*;
    import java.lang.reflect.Field;
    
    import android.app.Application;
    import android.content.Context;
    import android.content.pm.ActivityInfo;
    import android.content.pm.PackageInfo;
    import android.content.res.AssetFileDescriptor;
    import android.os.Build;
    import android.telephony.TelephonyManager;
    import android.text.format.DateFormat;
    import android.util.DisplayMetrics;
    
    import org.geometerplus.zlibrary.core.library.ZLibrary;
    import org.geometerplus.zlibrary.core.filesystem.ZLFile;
    import org.geometerplus.zlibrary.core.filesystem.ZLResourceFile;
    import org.geometerplus.zlibrary.core.options.ZLBooleanOption;
    import org.geometerplus.zlibrary.core.options.ZLIntegerRangeOption;
    
    import org.geometerplus.zlibrary.ui.android.R;
    import org.geometerplus.zlibrary.ui.android.view.ZLAndroidWidget;
    
    public final class ZLAndroidLibrary extends ZLibrary {
    	public final ZLBooleanOption ShowStatusBarOption = new ZLBooleanOption("LookNFeel", "ShowStatusBar", hasNoHardwareMenuButton());
    	public final ZLIntegerRangeOption BatteryLevelToTurnScreenOffOption = new ZLIntegerRangeOption("LookNFeel", "BatteryLevelToTurnScreenOff", 0, 100, 50);
    	public final ZLBooleanOption DontTurnScreenOffDuringChargingOption = new ZLBooleanOption("LookNFeel", "DontTurnScreenOffDuringCharging", true);
    	public final ZLIntegerRangeOption ScreenBrightnessLevelOption = new ZLIntegerRangeOption("LookNFeel", "ScreenBrightnessLevel", 0, 100, 0);
    	public final ZLBooleanOption DisableButtonLightsOption = new ZLBooleanOption("LookNFeel", "DisableButtonLights", !hasButtonLightsBug());
    
    	private boolean hasNoHardwareMenuButton() {
    		return
    			// Eken M001
    			(Build.DISPLAY != null && Build.DISPLAY.contains("simenxie")) ||
    			// PanDigital
    			"PD_Novel".equals(Build.MODEL);
    	}
    
    	private Boolean myIsKindleFire = null;
    	public boolean isKindleFire() {
    		if (myIsKindleFire == null) {
    			final String KINDLE_MODEL_REGEXP = ".*kindle(\\s+)fire.*";
    			myIsKindleFire =
    				Build.MODEL != null &&
    				Build.MODEL.toLowerCase().matches(KINDLE_MODEL_REGEXP);
    		}
    		return myIsKindleFire;
    	}
    
    	public boolean hasButtonLightsBug() {
    		return "GT-S5830".equals(Build.MODEL);
    	}
    
    	private ZLAndroidActivity myActivity;
    	private final Application myApplication;
    	private ZLAndroidWidget myWidget;
    
    	ZLAndroidLibrary(Application application) {
    		myApplication = application;
    	}
    
    	void setActivity(ZLAndroidActivity activity) {
    		myActivity = activity;
    		myWidget = null;
    	}
    
    	public void finish() {
    		if ((myActivity != null) && !myActivity.isFinishing()) {
    			myActivity.finish();
    		}
    	}
    
    	public ZLAndroidActivity getActivity() {
    		return myActivity;
    	}
    
    	public ZLAndroidWidget getWidget() {
    		if (myWidget == null) {
    			myWidget = (ZLAndroidWidget)myActivity.findViewById(R.id.main_view);
    		}
    		return myWidget;
    	}
    
    	@Override
    	public ZLResourceFile createResourceFile(String path) {
    		return new AndroidAssetsFile(path);
    	}
    
    	@Override
    	public ZLResourceFile createResourceFile(ZLResourceFile parent, String name) {
    		return new AndroidAssetsFile((AndroidAssetsFile)parent, name);
    	}
    
    	@Override
    	public String getVersionName() {
    		try {
    			final PackageInfo info =
    				myApplication.getPackageManager().getPackageInfo(myApplication.getPackageName(), 0);
    			return info.versionName;
    		} catch (Exception e) {
    			return "";
    		}
    	}
    
    	@Override
    	public String getFullVersionName() {
    		try {
    			final PackageInfo info =
    				myApplication.getPackageManager().getPackageInfo(myApplication.getPackageName(), 0);
    			return info.versionName + " (" + info.versionCode + ")";
    		} catch (Exception e) {
    			return "";
    		}
    	}
    
    	@Override
    	public String getCurrentTimeString() {
    		return DateFormat.getTimeFormat(myApplication.getApplicationContext()).format(new Date());
    	}
    
    	@Override
    	public void setScreenBrightness(int percent) {
    		if (myActivity != null) {
    			myActivity.setScreenBrightness(percent);
    		}
    	}
    
    	@Override
    	public int getScreenBrightness() {
    		return (myActivity != null) ? myActivity.getScreenBrightness() : 0;
    	}
    
    	@Override
    	public int getDisplayDPI() {
    		if (myActivity == null) {
    			return 0;
    		}
    		DisplayMetrics metrics = new DisplayMetrics();
    		myActivity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
    		return (int)(160 * metrics.density);
    	}
    
    	@Override
    	public Collection<String> defaultLanguageCodes() {
    		final TreeSet<String> set = new TreeSet<String>();
    		set.add(Locale.getDefault().getLanguage());
    		final TelephonyManager manager = (TelephonyManager)myApplication.getSystemService(Context.TELEPHONY_SERVICE);
    		if (manager != null) {
    			final String country0 = manager.getSimCountryIso().toLowerCase();
    			final String country1 = manager.getNetworkCountryIso().toLowerCase();
    			for (Locale locale : Locale.getAvailableLocales()) {
    				final String country = locale.getCountry().toLowerCase();
    				if (country != null && country.length() > 0 &&
    					(country.equals(country0) || country.equals(country1))) {
    					set.add(locale.getLanguage());
    				}
    			}
    			if ("ru".equals(country0) || "ru".equals(country1)) {
    				set.add("ru");
    			} else if ("by".equals(country0) || "by".equals(country1)) {
    				set.add("ru");
    			} else if ("ua".equals(country0) || "ua".equals(country1)) {
    				set.add("ru");
    			}
    		}
    		set.add("multi");
    		return set;
    	}
    
    	@Override
    	public boolean supportsAllOrientations() {
    		try {
    			return ActivityInfo.class.getField("SCREEN_ORIENTATION_REVERSE_PORTRAIT") != null;
    		} catch (NoSuchFieldException e) {
    			return false;
    		}
    	}
    
    	private final class AndroidAssetsFile extends ZLResourceFile {
    		private final AndroidAssetsFile myParent;
    
    		AndroidAssetsFile(AndroidAssetsFile parent, String name) {
    			super(parent.getPath().length() == 0 ? name : parent.getPath() + '/' + name);
    			myParent = parent;
    		}
    
    		AndroidAssetsFile(String path) {
    			super(path);
    			if (path.length() == 0) {
    				myParent = null;
    			} else {
    				final int index = path.lastIndexOf('/');
    				myParent = new AndroidAssetsFile(index >= 0 ? path.substring(0, path.lastIndexOf('/')) : "");
    			}
    		}
    
    		@Override
    		protected List<ZLFile> directoryEntries() {
    			try {
    				String[] names = myApplication.getAssets().list(getPath());
    				if (names != null && names.length != 0) {
    					ArrayList<ZLFile> files = new ArrayList<ZLFile>(names.length);
    					for (String n : names) {
    						files.add(new AndroidAssetsFile(this, n));
    					}
    					return files;
    				}
    			} catch (IOException e) {
    			}
    			return Collections.emptyList();
    		}
    
    		@Override
    		public boolean isDirectory() {
    			try {
    				InputStream stream = myApplication.getAssets().open(getPath());
    				if (stream == null) {
    					return true;
    				}
    				stream.close();
    				return false;
    			} catch (IOException e) {
    				return true;
    			}
    		}
    
    		@Override
    		public boolean exists() {
    			try {
    				InputStream stream = myApplication.getAssets().open(getPath());
    				if (stream != null) {
    					stream.close();
    					// file exists
    					return true;
    				}
    			} catch (IOException e) {
    			}
    			try {
    				String[] names = myApplication.getAssets().list(getPath());
    				if (names != null && names.length != 0) {
    					// directory exists
    					return true;
    				}
    			} catch (IOException e) {
    			}
    			return false;
    		}
    
    		private long mySize = -1;
    		@Override
    		public long size() {
    			if (mySize == -1) {
    				mySize = sizeInternal();
    			}
    			return mySize;
    		}
    
    		private long sizeInternal() {
    			try {
    				AssetFileDescriptor descriptor = myApplication.getAssets().openFd(getPath());
    				// for some files (archives, crt) descriptor cannot be opened
    				if (descriptor == null) {
    					return sizeSlow();
    				}
    				long length = descriptor.getLength();
    				descriptor.close();
    				return length;
    			} catch (IOException e) {
    				return sizeSlow();
    			} 
    		}
    
    		private long sizeSlow() {
    			try {
    				final InputStream stream = getInputStream();
    				if (stream == null) {
    					return 0;
    				}
    				long size = 0;
    				final long step = 1024 * 1024;
    				while (true) {
    					// TODO: does skip work as expected for these files?
    					long offset = stream.skip(step);
    					size += offset;
    					if (offset < step) {
    						break;
    					}
    				}
    				return size;
    			} catch (IOException e) {
    				return 0;
    			}
    		}
    
    		@Override
    		public InputStream getInputStream() throws IOException {
    			return myApplication.getAssets().open(getPath());
    		}
    
    		@Override
    		public ZLFile getParent() {
    			return myParent;
    		}
    	}
    }
    
    The 50 line works,I believe.
    Code:
    public final ZLBooleanOption DisableButtonLightsOption = new ZLBooleanOption("LookNFeel", "DisableButtonLights", !hasButtonLightsBug());
     
    Last edited: Mar 24, 2012
  5. elmvly

    elmvly New Member

    Joined:
    Feb 29, 2012
    Messages:
    9
    Likes Received:
    0
    Trophy Points:
    1
    Ratings:
    +0
    Any help plz!

    Sent from my DROID Pro using DroidForums
     
  6. ozo012

    ozo012 Member

    Joined:
    Jan 19, 2012
    Messages:
    51
    Likes Received:
    0
    Trophy Points:
    6
    Ratings:
    +0
    I'm not much of a coder but I'll take a look for you after work.
     
  7. ozo012

    ozo012 Member

    Joined:
    Jan 19, 2012
    Messages:
    51
    Likes Received:
    0
    Trophy Points:
    6
    Ratings:
    +0
    Alright so I took a brief look through the code but I'm not too familiar with a lot of it. I know for sure there was a solution to this that I found in this forum. Going to dig through Bookmarks and see if I can find it.
     
  8. elmvly

    elmvly New Member

    Joined:
    Feb 29, 2012
    Messages:
    9
    Likes Received:
    0
    Trophy Points:
    1
    Ratings:
    +0
    Thanks! It's great help.

    Sent from my DROID Pro using DroidForums
     
  9. LordBlue

    LordBlue New Member

    Joined:
    Feb 3, 2014
    Messages:
    1
    Likes Received:
    0
    Trophy Points:
    1
    Ratings:
    +0
    Built In Keyboard Black light

    I called Motorola its gona cost 100 Large to fix the issue without insurance
    I have a Droid 2 with the same issues tried everything as well
     
Search tags for this page
android keyboard backlight controller review
,

android keyboard light control

,
how to control keyboard light on a blackberry
,
keyboard backlight controller for incredible 2