本文主要以MMA7455进行讲述,难点在于多个sensor的HAL编写。
1.sensor的JAVA部分 frameworks/base/include/core/java/android/hardware/ 主要的代码为Sensor*.java SensorManager.java:实现传感器系统核心的管理类SensorManager Sensor.java:单一传感器的描述性文件Sensor SensorEvent.java:表示传感器系统的事件类SensorEvent SensorEventListener.java:传感器事件的监听者SensorEventListener接口 SensorListener.java:传感器的监听者SensorListener接口
2.Sensor的JNI部分 frameworks/base/core/jni/android_hardware_SensorManager.cpp
3.Sensor硬件层实现的接口 hardware/libhardware/include/hardware/sensors.h
4.编译hal,生成sensors.omap3.so
5.mma7455为I2C驱动,在board文件里需要添加i2c_board_info 。 static struct i2c_board_info omap3_board_info[] __initdata = { { .type = "ov3640", .addr = 0x3C, .platform_data = (void *)&camera_data, }, { .type = "mma7455", .addr = 0x1D, }, };
6.灵敏度:调节POLL_INTERVAL 值
|