- 浏览: 1578004 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (289)
- java 语法基础 (51)
- spring (8)
- mvc struct /Ant --build.xml (8)
- SOA (0)
- oracle 9i/10g (23)
- sql server 2000-2005 (3)
- 数据库基础知识 (6)
- 设计模式与软件架构 (10)
- Hibernate 持久化 (9)
- J2SE/J2EE/J2ME/AJAX 技术 (8)
- JSF 技术 (3)
- JAVA 图形化 (0)
- JMS (40)
- Eclipse 3.2 IDE 开发技巧 (13)
- 项目处理方法集合 (2)
- html/jsp/javascript (2)
- Unix/Linux (9)
- j2me/ARM/windriver/嵌入式 (4)
- 电信科学 (8)
- jsp (1)
- c/c++ (1)
- LZW压缩算法(java) (2)
- Android (77)
- 版本管理git/svn (2)
最新评论
-
huihai:
有demo吗?
NamingStrategy实现动态表名映射 -
cangbaotu:
推荐给大家一些有用的爬虫源码:https://github.c ...
网络爬虫(源代码参考) -
tuspark:
除了.classpath文件以外,.project文件也应该了 ...
Eclipse .classpath文件浅谈 -
tuspark:
造成eclipse自动关闭的原因有很多,这里有很多介绍:ecl ...
eclipse 自动关闭 解决方案 -
DEMONU:
网上都是这些,这种文章。。。
ActiveMQ中的消息持久性
默认分类 2010-12-24 14:34:55 阅读144 评论1 字号:大中小 订阅
frameworks/base/services/java/com/android/server/PowerManagerService.java
首先通过sensormanager来获得service 这里以light sensor为例
void systemReady() {
mSensorManager = new SensorManager(mHandlerThread.getLooper());
mProximitySensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
// don't bother with the light sensor if auto brightness is handled in hardware
if (mUseSoftwareAutoBrightness) {
mLightSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
enableLightSensor(true);
}
这里使用enableLightSensor来确定是不是lightsensor有效
private void enableLightSensor(boolean enable) {
if (mDebugLightSensor) {
Slog.d(TAG, "enableLightSensor " + enable);
}
if (mSensorManager != null && mLightSensorEnabled != enable) {
mLightSensorEnabled = enable;
// clear calling identity so sensor manager battery stats are accurate
long identity = Binder.clearCallingIdentity();
try {
if (enable) {
mSensorManager.registerListener(mLightListener, mLightSensor,
SensorManager.SENSOR_DELAY_NORMAL);
} else {
mSensorManager.unregisterListener(mLightListener);
mHandler.removeCallbacks(mAutoBrightnessTask);
}
} finally {
Binder.restoreCallingIdentity(identity);
}
}
}
如果有效就注册一下监听事件 监听mLightListener事件响应
SensorEventListener mLightListener = new SensorEventListener() {
public void onSensorChanged(SensorEvent event) {
synchronized (mLocks) {
// ignore light sensor while screen is turning off
if (isScreenTurningOffLocked()) {
return;
}
int value = (int)event.values[0];
long milliseconds = SystemClock.elapsedRealtime();
if (mDebugLightSensor) {
Slog.d(TAG, "onSensorChanged: light value: " + value);
}
mHandler.removeCallbacks(mAutoBrightnessTask);
if (mLightSensorValue != value) {
if (mLightSensorValue == -1 ||
milliseconds < mLastScreenOnTime + mLightSensorWarmupTime) {
// process the value immediately if screen has just turned on
lightSensorChangedLocked(value);
} else {
// delay processing to debounce the sensor
mLightSensorPendingValue = value;
mHandler.postDelayed(mAutoBrightnessTask, LIGHT_SENSOR_DELAY);
}
} else {
mLightSensorPendingValue = -1;
}
}
}
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// ignore
}
};
看到onsensorchanged事件了吧 这里做事情 用handler来实现一个延迟消息发送 标准用法 执行什么样的任务呢?继续看
private Runnable mAutoBrightnessTask = new Runnable() {
public void run() {
synchronized (mLocks) {
int value = (int)mLightSensorPendingValue;
if (value >= 0) {
mLightSensorPendingValue = -1;
lightSensorChangedLocked(value);
}
}
}
};
然后lightSensorChangedLocked函数里就是各个具体的灯的控制了 比如 mButtonLight.setBrightness(buttonValue);等等 还有很多灯的动画 比如呼吸灯之类的 目前的LightAnimator好像只有一种就是隔几秒闪一下。。。
发表评论
-
APN(default、mms、supl、dun、hipri接入点类型的区别)
2013-10-10 19:31 45592设置APN上网时,大家可能经常遇到这个问题:为什么有时要填写 ... -
AMR音频编码器概述及文件格式分析
2013-10-10 19:29 3910全称Adaptive Multi-Rate,自适应多速率编码 ... -
pad 强制加载 Hdpi资源 (2.3 dpi < 240)
2012-07-16 16:47 0pad 强制加载 Hdpi资源 (2.3 dpi < ... -
android 设计模式-享元模式
2011-12-16 23:01 2152享元(FlyWeight)模式,原意是“轻量级”模式,它用来解 ... -
statusbar 2.3
2011-11-08 16:04 1243以前我的文章分析过Stat ... -
android 输入法默认设置
2011-07-07 14:00 7145设置默认输入法 在 frameworks\base\co ... -
Android Media Scanner Process
2011-06-06 22:58 3352下面是系统图 Medi ... -
handler与多线程消息处理
2011-06-04 13:42 8238在Android下面也有多线程的概念,在C/C++中,子线程可 ... -
android light
2011-03-24 16:15 3375背光设置是在:设置->声音和显示->亮度,通过进度 ... -
android 单例
2011-02-15 09:26 41861. Framework层的代码: A ... -
Android 开发之 Services 服务
2010-11-02 18:21 4190Service Service ... -
深入学习android之AlarmManager
2010-11-01 16:50 34679对应AlarmManage有一个Alarm ... -
eclipse+android+ddms+adt
2010-09-14 10:30 8385用eclipse + ADT作为android ... -
Menus
2010-09-05 19:01 1753Android Menus 文章分类:移动开发 1.O ... -
Android开机自启动应用开发
2010-08-28 10:07 4550目前需要开发一个开机自启动的GTD应用程序来提醒用户的 ... -
Android2.1_Launcher学习笔记
2010-08-11 13:40 3805文章分类:移动开发 好么,2.0的源码没看几天,2.1的 ... -
Browsing Android Source in Eclipse
2010-08-09 16:00 3388Google’s Android SDK includes ... -
android 编译
2010-08-07 16:31 24891 我的系统是Ubuntu 8.04 * 2 系统上 ... -
Ubuntu linux 右键添加"以管理员身份打开","在终端中打开"
2010-08-02 15:04 4552Ubuntu linux 右键添加"以管理员身份打开 ... -
自制android1.5的源码包
2010-08-02 13:44 1863最近打算玩下android,听hong老大说最好看看源码。而a ...
相关推荐
PowerManagerService.java
戴尔笔记本自带的电源管家,可以控制电池最大充电量,例如将电池充电到80%即停止充电,电池电量低于70%开始充电等,可以从一定程度上保护电池
Power Manager是一款能够帮助大家管理电脑电源,降低Mac电脑的能源成本的软件。使用这款软件大家可以更加便捷有效的控制好Mac自动启动、关机或睡眠,从而达到有效节省电源的目的。
gnome-power-manager gnome下的一个电源管理程序,功能类似kpowersave, 但不如kpowersave强大。
ireless sensor network (WSN) represents a collection of wireless sensor ... power device that consists of three components: a sensing ... algorithm for nodes localization in three-dimensional WSN. ...
Power management is an important concern in sensor networks, because a tethered energy infrastructure is usually not available and an obvious concern is to use the available battery energy efficiently...
结合这篇文章的图 http://blog.csdn.net/android_huber/article/details/7399476
Android 系统下Power Manager的框架
BOOK CHAPTER OF Ambient Intelligence.
注: fd就是文件描述符,在此 表示”/sys/power/wake_lock” id就是从PowerManagerService类中传下来的参数即:PARTIAL_NAME = "PowerManagerService" 到此 就是通过 文件系统 来与kernel层 交互的地方。 ++++++++++...
这就是Sonar Power Manager的实现原理及作用。 为了让笔记本的显示器能用得久一点,我不得不想各种办法让显示器自动关闭,如:音速启动的内置功能、省省看(似乎已死掉了)的快捷键、以及一些专门用来实现关屏的...
IBM的电源管理软件使用详解[power manager].pdf
强大的电源管理应用程序包含Synology Diskstation的集成电源,使管理员能够根据简单规则自动按需打开和关闭Diskstation。 它还可以使程序降级,通常是通过允许发生Hibernate(通常在休假回家时使用),暂停当前计划...
Thinkpad Power Manager是联想官方推出的Thinkpad系列笔记本的一款电源管理软件,Thinkpad电源管理软件通过软件、硬件的配合,对笔记本电脑各部件的性能及功耗进行优化与控制,有效延长电脑电池的使用时间,增强电池...
无线传感网络节点本质安全型电源的设计和分析,陈光柱,Zhu Zhencai,为了保证无线传感器网络应用于爆炸环境,节点电源必须满足本质安全要求。节点本质安全型电源由电源供电电路和本质安全保护电路组
Intel Intelligent Power Node Manager 3.0 External Interface Specification Using IPMI Contents 1 Introduction 2 Intel Management Engine (Intel ME) IPMI Interface 3 Intel ME Intel NM IPMI Interface 4 ...
Power Manager可以打开Mac的电源,运行一系列任务,并关闭Mac的电源,而无需任何交互。使用Power Manager,您可以创建复杂的节能计划并自动执行复杂的任务。 根据事件创建节能时间表。事件是Power Manager的核心...
Autonics SENSOR CONTROLLER & SWITCHING POWER SUPPLY—PA5系列pdf,Autonics SENSOR CONTROLLER & SWITCHING POWER SUPPLY—PA5系列
其中PowerManagerService.java是核心, Power.java提供底层的函数接口,与JNI层进行交互, JNI层的代码主要在文件android_os_Power.cpp中,与Linux kernel交互是通过Power.c来实现的, Android电源管理跟Kernel的交互...