I'm not planning to update this app anytime soon. You can try alternatives if you want, such as Backlight & Sound Notification. Thanks.
Read the FAQ before asking questions. If you haven't read it, my only reply will be "Does the FAQ help?"
You do NOT need a kernel with BLN support to use this app. In fact, I made this because my device has no BLN kernels.
Also, a quick note for those who are gonna read the comments: The attached MDPI/HDPI versions look fine on respective devices. The first version of ButtonLED was only available for MDPI, which should explain the first few comments.
I've been fiddling around Tasker for the last few weeks and finally decided to create a fully functional app using it.
At this point, some of you will be thinking "another useless, ugly, cluttered Tasker created app that does something nobody needs".
Well, then, I'll try to prove you wrong
You do NOT need Tasker to use the app.
ButtonLED is similar to NoLED: It allows you to have led like notifications without actually having the led light. However, NoLED uses uses your screen; ButtonLED only uses the hardware buttons' backlight (your screen stays off). It's customizable to an extent, with more to come depending on feedback and suggestions.
status bar notifications + missed call/unread text support;
pause for some user defined time on proximity (e.g. If phone is turned down, or is in your pocket);
turn button backlight for x seconds, then off for y seconds;
notification exceptions (e.g. To ignore all notification that contain "hello", add *hello* to the exception list);
should work on all devices since the user can locate the brightness file;
and some more (check the screenshots, install the app).
It should work on all rooted devices (some devices have a kernel level limitation; read the FAQ). At the moment, you'll also need to have a proximity sensor to run it. It should work without having to do (almost) anything manually for many devices. If auto locate doesn't find anything useful, you'll have to manually locate the brightness file. Please share the results when you do that so i can improve the auto locate feature.
Running The App:
install and open the app. You should be greeted by a popup showing you a list of files. Select the most appropriate (you're looking for something that has a path such as "/sys/devices/platform/bcm21553-leds/leds/button-backlight/brightness). Once you're done, click "enable buttonled in accessibility" and do so. Come back to buttonled and tap the "test buttonled" button. If your capacitive buttons flash, you're good to go. Otherwise, you will need to select a different brightness file (use auto locate or do it manually).
You may also want to customize the options.
Some examples for the brightness file:
I'll update this list later.
Auto Locate will not follow symlinks as it can cause infinite loops or imprecise results (if it doesn't search deep enough). Usually, /sys/class/leds will have symlinks to all LEDs, backlight included. Check it out.
Screenshots (actual release is slightly different):
You can now ignore apps as well.
The battery tweak can be disabled on devices where ButtonLED was flashing the LEDs once or twice before sleeping forever.
You can long press log items to view the full text, for items that didn't fit.
Proximity sensor feature is now disabled (it wasn't working anyway due to a Tasker limitation) (the UI option is still listed as "FEATURE DISABLED"). This should have a minor but positive impact on performance/battery.
Minor UI changes.
Other minor changes.
Wake locks are released while the LEDs are off and ButtonLED is waiting;
Sleep timer is fixed. The current value is also displayed when changing the sleep start/end times;
Tapping on a log entry will give you the option to add that notification to the exclusion list;
ButtonLED will give you the choice to install Busybox if it's not found;
File Browser/Auto Locate issues might be fixed for users who were having them (pressing File Browser did nothing at all even if Busybox is installed). Please try it if you were having this issue.
Added XHDPI version for everyone. Also added MDPI for JB/CM10 users.
Manual search is now as fast as other file explorers (busybox is required);
Sleep start/end added (ButtonLED will not react to notifications during that time);
Confirmation added before removing exceptions;
Fixed a (rare?) issue where ButtonLED kept blinking the lights after the screen is turned on;
Might be more battery efficient if using higher LED Off delays, not sure. But if it is, it will be much better (more testing needed);
ButtonLED will stop notifying you about missed calls and unread texts when you turn your screen on, instead of continuing till you view them;
Auto Locate will now simply search /sys for the brightness file. That means it will locate more files, across more devices. It's also faster;
Fixed the bug where ButtonLED would forget resuming once the battery drops below the threshold then go above it again.
Stop service and exit menu option;
Ignore notifications if battery is lower than threshold;
Fixed exceptions not taking effect;
Changed the path auto locate looks into. Hopefully, this will make it work for more devices;
Two versions are now available, one for mdpi devices, the other for hdpi devices (thanks for .xxx. for testing).
Rewrote most of the logic;
Better handling of events;
Less battery consumption and more accurate logs;
Logs now show battery percentage on processed notifications, screen on (if notifications are pending) and device shutdown, which should give users an idea about battery consumption;
Fixed logs showing skipped notifications as processed (e.g. Notifications that were issued with the screen turned on were skipped but shown as processed in the logs);
Auto Locate brightness file option (beta; need more device specific info to tweak the search);
Separated missed call from unread text notifications;
Run with higher task priority, should avoid lag (uses the renice linux shell command).
Missed call/unread text notifications support;
Optional permanent notification;
Option to use flashlight instead of the hard buttons' led light;
Test button that will turn on and off the led/flashlight;
This list is updated based on your feedback. Want to see a feature? Suggest it!
Proximity sensor doesn't have any effect;
This list is updated based on your feedback. Thanks for reporting any bug you find.
Downloads: Don't forget to post your comments! Get ButtonLED
Jelly Bean/CM10 users, get the "ButtonLED.x.x.XXXX_JB.apk".
Everyone else, download "ButtonLED.x.x.XXXX.apk".
Don't know which APK to grab? Read the FAQ for info on how to determine your resolution (MDPI, HDPI, XHDPI, ..). You can find previous versions here.
You can get the Tasker project if you prefer, it offers the same functionality but will run inside Tasker instead of being a separate app.
You need Tasker (pre-ICS versions only) and the Holo Light IPack icon pack to use this.
Grab the appropriate project file from here.
Place the XML file in your SD Card (e.g. mnt/sdcard/tasker/projects/) and open Tasker. Long tap on an existing project (if you can't see the projects bar, disable beginner mode in Tasker's settings, then swipe down from the "projects"/"tasks"/"scenes"/"variables" bar), select "import", then tap on the file's name (e.g. buttonled.hdpi). You should see a new project appear with ButtonLED's icon. Apply the changes by tapping on the green check mark in the bottom left corner, then open Tasker again.
To open ButtonLED's configuration menu, run the task named "config".
Q: It's not detecting my brightness file! A: Apparently, if you have a kernel with BLN support, you don't have one. Otherwise, try searching manually or asking on your device's forum. And to make sure auto locate didn't miss something, you can run this in a terminal emulator (this will also expand the search so expect some weird results):
find / | grep brightness
It's worth noting that Auto Locate will not follow symlinks as it can cause infinite loops or imprecise results (if it doesn't search deep enough). Usually, /sys/class/leds will have symlinks to all LEDs, backlight included. Check it out.
Q: The test button works fine, but ButtonLED won't react to my notifications. A: make sure ButtonLED is enabled in accessibility. Also, check ButtonLED's logs. Is it detecting the notifications? Is it reacting to them, but you fail to see it? If that's the case, try increasing the led on duration.
Q: Can i use this with application xyz (e.g. Whatsapp)? A: if the application sends notifications, yes. ButtonLED will automatically detect them.
Q: Should i get the MDPI or HDPI APK? A: if your device's density is ~160, get the MDPI APK. If it's ~240, download the HDPI APK. If you don't know, download an app from the market that will show you (e.g. screen resolution), or grab the MDPI APK and if it looks squished, uninstall it then install the HDPI APK.
Q: Battery usage is too high! A: ButtonLED will hold a wakelock when it's flashing the LEDs. Configure it to ignore notifications you don't care about (turn the logs on, and use exceptions). See this post.
Q: Auto Locate/File Browser isn't working! A:Try installing Busybox.
Also make sure ButtonLED has root permissions - check your SU app, and try to revoke permissions then give them back.
If that fails, it might be related to how Tasker checks if your device is rooted:
Tasker decides that a device is rooted if /system/app/Superuser.apk is present and su is present in one of the directories of $PATH
Q: Test works, and the logs show that ButtonLED detects and processes my notifications, but it won't light my LEDs! A: Check this out.
Q: How do I ask for help? A: What have you tried? Did you do anything covered in this FAQ but it didn't help? Have you read the last few pages of comments? If you don't answer any of these questions, I'll assume you haven't read this FAQ and my reply will be "Read the FAQ".
I just noticed the exceptions aren't taking effect (forgot a line ). It's fixed in v1.3, will upload it later.
Regarding resolutions, I'll try checking the XML files later and try adapting it to all resolutions. Don't hold your breath, tho. Worst case scenario, multiple versions will be created, one for each resolution.
If you know where a device's brightness file is located (perhaps you own it, or you just read it somewhere), please share so I can improve the auto locate feature.
If anyone has Tasker and can generate JB APKs ("Minimum Android Version: 16" setting) without problems, I'll be happy to pass the project for them to export and send me back, after which I'll upload it.
XDA Developers was founded by developers, for developers. It is now a valuable resource for people who want to make the most of their mobile devices, from customizing the look and feel to adding new functionality. Are you a developer?