- 浏览: 1591151 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (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 45867设置APN上网时,大家可能经常遇到这个问题:为什么有时要填写 ... -
AMR音频编码器概述及文件格式分析
2013-10-10 19:29 3958全称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 2193享元(FlyWeight)模式,原意是“轻量级”模式,它用来解 ... -
statusbar 2.3
2011-11-08 16:04 1284以前我的文章分析过Stat ... -
android 输入法默认设置
2011-07-07 14:00 7196设置默认输入法 在 frameworks\base\co ... -
Android Media Scanner Process
2011-06-06 22:58 3408下面是系统图 Medi ... -
handler与多线程消息处理
2011-06-04 13:42 8282在Android下面也有多线程的概念,在C/C++中,子线程可 ... -
android light
2011-03-24 16:15 3414背光设置是在:设置->声音和显示->亮度,通过进度 ... -
android 单例
2011-02-15 09:26 42291. Framework层的代码: A ... -
Android 开发之 Services 服务
2010-11-02 18:21 4244Service Service ... -
深入学习android之AlarmManager
2010-11-01 16:50 34768对应AlarmManage有一个Alarm ... -
eclipse+android+ddms+adt
2010-09-14 10:30 8460用eclipse + ADT作为android ... -
Menus
2010-09-05 19:01 1791Android Menus 文章分类:移动开发 1.O ... -
Android开机自启动应用开发
2010-08-28 10:07 4594目前需要开发一个开机自启动的GTD应用程序来提醒用户的 ... -
Android2.1_Launcher学习笔记
2010-08-11 13:40 3877文章分类:移动开发 好么,2.0的源码没看几天,2.1的 ... -
Browsing Android Source in Eclipse
2010-08-09 16:00 3437Google’s Android SDK includes ... -
android 编译
2010-08-07 16:31 25311 我的系统是Ubuntu 8.04 * 2 系统上 ... -
Ubuntu linux 右键添加"以管理员身份打开","在终端中打开"
2010-08-02 15:04 4661Ubuntu linux 右键添加"以管理员身份打开 ... -
自制android1.5的源码包
2010-08-02 13:44 1902最近打算玩下android,听hong老大说最好看看源码。而a ...
相关推荐
通过分析系统 Dump 出的\data\anr\目录下的 Trace 文件,发现多处线程 waiting to lock 某个 object 导致死锁,根据这个 object 被锁死的 tid 跟踪到 PowerManagerService,并定位到 setScreenStateLocked() 方法,...
这个界面与PowerManagerService进行通信,改变sysfs中的相关参数。 5. **自动亮度**:Android还支持自动亮度模式,通过环境光传感器(Ambient Light Sensor, ALS)感知周围光线,动态调整屏幕亮度。这涉及到硬件...
深入代码层面,可以看到`PowerManagerService.java`扮演了核心角色。在系统初始化阶段,通过检查`mUseSoftwareAutoBrightness`变量,如果为`true`,表示系统将启用软件级别的自动亮度调整功能。此时,会通过`...
- `PowerManagerService` - `TelephonyRegistry` - `PackageManagerService` - `AccountManagerService` - `BatteryService` - `HardwareService` - `Watchdog` - `SensorService` - `BluetoothService` -...
3. **PowerManagerService.java**:在系统服务层,`PowerManagerService` 是负责管理设备电源的组件,包括屏幕亮度的自动调节。`mUseSoftwareAutoBrightness` 变量控制是否启用软件自动亮度调节,其值同样在 `config...
在Android源码中,这些功能主要由`SettingsProvider`、`WindowManagerService`和`PowerManagerService`等组件协同实现。 "项目说明.rar"可能是对"TestBrightness2"项目的详细解释,涵盖了项目目标、实现方法、使用...
23. Android Framework系统级服务示例:Activity Manager Service(AMS)、Power Manager Service(PMS)。 短文翻译: 我们已经将最新的Android N代码推送到openlinux,适用于S905X、S905D、S805X和S912。这个版本...
The BLE firmware includes the L2CAP service layer protocols, Security Manager (SM), Attribute Protocol (ATT), the Generic Attribute Profile (GATT), and the Generic Access Profile (GAP). All profiles ...
│ │ │ ├── UPnP-av-ConnectionManager-v2-Service-20060531.pdf │ │ │ ├── UPnP-av-ContentDirectory-v2-Service-20060531.pdf │ │ │ ├── UPnP-av-MediaRenderer-v2-Device-20060531.pdf...
< > Broadcom Bluetooth Low Power Manager Support <*> Realtek Bluesleep driver support 修改为: <*> Broadcom Bluetooth Low Power Manager Support < > An inverter between bt hostwake pin ...
< > Broadcom Bluetooth Low Power Manager Support <*> Realtek Bluesleep driver support 修改为: <*> Broadcom Bluetooth Low Power Manager Support < > An inverter between bt hostwake pin ...
< > Broadcom Bluetooth Low Power Manager Support <*> Realtek Bluesleep driver support 修改为: <*> Broadcom Bluetooth Low Power Manager Support < > An inverter between bt hostwake pin ...
< > Broadcom Bluetooth Low Power Manager Support <*> Realtek Bluesleep driver support 修改为: <*> Broadcom Bluetooth Low Power Manager Support < > An inverter between bt hostwake pin ...
WISE-PaaS作为一款面向物联网应用的PaaS(Platform as a Service)平台,通过集成一系列关键技术和组件,为用户提供了一套全面且灵活的解决方案,帮助其实现物联网项目的快速部署与管理。 #### 关键技术与平台架构 ...
2018\09\10 周一 17:27 <DIR> Metadata Manager File System Minifilter Driver 2018\09\10 周一 17:27 <DIR> Microsoft slate system virtual audio device driver sample 2018\09\10 周一 17:27 <DIR> Microsoft ...