ICS g-sensor,light sensor移植记录

最近有在移植ICS的sensor,接近传感器主要涉及文件及重要函数移植

1.device/samsung/crespo/libsensors

2.PowerManagerService.java,userActivity()

3.PhoneApp.java,updateProximitySensorMode()

4.Cm3605.c

5.init.rc


G-Sensor主要涉及到的过程

1.首先要了解orientation Sensor设置的入口。
 DisplaySettings.java中。
 ->onPreferenceTreeClick()会启动一个服务。调用PhoneWindowManager.java
 在PhoneWindowManager.java中有
 SettingsObserver类,会监听settings。当发现状态改变时,会
 ->updateSettings()->updateOrientationListenerLp()->needSensorRunningLp()(当应用程序禁止旋转时,就不会旋转)
2.当允许开启orientation sensor时。此时,会注册一个MyOrientationListener来监听旋转方向。
在WindowOrientationListener.java中监听java的值。对旋转方向判断。
 ->onSensorChanged()->onProposedRotationChanged()
3.PhoneWindowManager.java中有MyOrientationListener.onProposedRotationChanged()来监听上面的变化。
 ->updateRotation(false)
4.WindowManagerService.java中。
 ->updateRotation()->updateRotationUnchecked()->sendNewConfiguration()
5.ActivityManagerService.java中。
 ->updateConfiguration()->updateConfigurationLocked()
 
 当操作系统启动后,WindowManagerService.java中ENABLE_SCREEN
 ->performEnableScreen()->mPolicy.enableScreenAfterBoot()


Light sensor主要涉及文件

framework/base/core/res/res/values/config.xml

<bool name="config_automatic_brightness_available">true</bool>
……
<integer-array name="config_autoBrightnessLevels">
<item>40</item>
<item>300</item>
<item>400</item>
<item>700</item>
</integer-array>
……

<integer-array name="config_autoBrightnessLevels">
<item>50</item>
<item>100</item>
<item>160</item>
<item>200</item>
<item>250</item>
</integer-array>

在framework/base/services/java/com/android/server/PowerManagerService.java

lightSensorChangedLocked()函数中修改

int lcdValue = getAutoBrightnessValue(
                        (true/*mIsDocked*/ ? value : mHighestLightSensorValue),
                        mLcdBacklightValues);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值