motofan logo
       
> 

Программируем LED на телефоне, Мануал

AstaRoth
сообщение 24.9.2010, 5:47


Бошетунмай
********

Группа: Почётные мотофаны
Сообщений: 3 115
Регистрация: 5.11.2005
Из: СЕВЕРОДВИНСК,29, РФ ☭
Пользователь №: 57 206
Модель телефона: E2=>Zn5=>Defy+=>Nubia
Прошивка: Ъбфбймус Edition
Победитель конкурса 2008


Настроение:
reBOOT



Рейтинг: 4098.5



Программируем LED на телефоне

Хотя Android API не позволяет напрямую включать-выключать светодиодный индикатор или вспышку фотокамеры, на некоторых телефонах такая возможность имеется.

Как программно помигать разноцветными огоньками, как написать свой «Фонарик» или какими еще светодиодами устройства можно управлять — об этом Вы узнаете ниже.

Spoiler:
Изображение
[close]


Началось все с того, что я, исследуя файловую систему своего HTC Desire с помощью ES Проводника, случайно наткнулся на любопытные каталоги: /sys/class/leds/blue, /sys/class/leds/flashlight и т.п.
Какой еще blue?! Я видел только оранжевый и зеленый индикатор. Но самое интересное — внутри этих каталогов оказался файл brightness с правом на запись! Чем я сразу и воспользовался.

На самом деле, это не простой файл, а интерфейс работы с драйвером светодиода. Так, записав в файл /sys/class/leds/blue/brightness положительное число, мы включим синий индикатор на корпусе телефона, записав 0 — выключим. Аналогично с индикаторами amber и green. Включив два светодиода вместе, получим новые цвета: amber + blue = purple; green + blue = aqua.


Прикрепленное изображение


А теперь, как это все программируется

Код
public void ledControl(String name, int brightness) {
    try {
        FileWriter fw = new FileWriter("/sys/class/leds/" + name + "/brightness");
        fw.write(Integer.toString(brightness));
        fw.close();
    } catch (Exception e) {
        // Управление LED недоступно
    }
}

// Включим пурпурный индикатор
ledControl("amber", 255);
ledControl("blue",  255);

// Сделаем дисплей темнее
ledControl("lcd-backlight", 30);

// Выключим подсветку кнопок
ledControl("button-backlight", 0);

// Организуем фонарик средней яркости
ledControl("flashlight", 128);


Приложение-пример с исходными кодами можно скачать тут.

Изображение

Заключение

Все! Теперь телефон светится, как новогодняя елка. Код проверялся только на HTC Desire под управлением Android 2.2, но, вероятно, может работать и на других устройствах. Напишите мне, получится или не получится фокус на Вашем телефоне.


Автор статьи: apangin
Оригинал: habr.ru (с)

Сообщение отредактировал EXL - 3.10.2010, 23:35
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Программируем LED на телефоне, Мануал · Motorola на Android OS · Forum
 

Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 30.7.2025, 6:07

Форум живёт: