最近有在移植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
true ………… - 40
- 300
- 400
- 700
- 50
- 100
- 160
- 200
- 250
在framework/base/services/java/com/android/server/PowerManagerService.java
lightSensorChangedLocked()函数中修改
int lcdValue = getAutoBrightnessValue( (true/*mIsDocked*/ ? value : mHighestLightSensorValue), mLcdBacklightValues);