摘要: 要想实现指南针功能,其实主要就是获取手机的方位,通过对比前一刻方位和现在手机方位算出手机旋转的角度,然后根据手机实际旋转的角度去旋转指南针的imageview。关键在于如何获取手机实际方位。那么如何获取到这个方位呢?那么,android中不是有方向传感器吗?其实android的方向传感器不是物理实际存在的,它只是逻辑上的,什么意思,就是它是通过磁力计和加速度计抽象出来的。因此,这个方位的获得其实是通过这两个传感器的数据通过一定的算法得到的。而这个算法则封装在了api中,我们只需直接使用即可。一般情况下,在android系统中获取手机的方位信息azimuth似乎是很简单的事情,在api中有TYP 阅读全文
posted @ 2013-11-13 18:04 microliang 阅读(9568) 评论(0) 推荐(1) 编辑
摘要: 昨天的某一个sensor的驱动,需要实现这样一个功能,就是在workqueue里面采集到五次数据之后再传给ioctl平均之后再传给上 层。所以在workqueue里面未采集到五次时,如果有app调用到ioctl对应的读数据的接口,那么只能阻塞一会儿等到workqueue那边采集 到五次之后平均再给ioctl这边,然后ioctl才能继续往下走平均之后再给上层。 那么这里刚好可以用complete,而且非常适合。 现在总结一下completion的用法。 completion是linux内核中一种简单的同步机制。 要使用completion,必须在文件中包含,同时创建一个类型为stru... 阅读全文
posted @ 2013-11-13 11:32 microliang 阅读(570) 评论(0) 推荐(0) 编辑