最近写一个应用,需要在执行过程中判断下当前手机的X,Y,Z三轴的值,如下图:我按照android 官方文档的说明,写了一个实现了SensorEventListener的类,通过onSensorChanged事件里的SensorEvent 对象得到了X, Y,Z的值。不过这个值必须要触发重力改变的事件才能得到,而我的应用则是跑在一个服务里面的,可能不能实时得到这些值。大家有什么办法么?谢谢~

解决方案 »

  1.   

    值的保存问题float tmp_x = event.values[_DATA_X];
    float tmp_y = event.values[_DATA_Y];
    float tmp_z = event.values[_DATA_Z]; 
    但是我不知道你具体的程序设计是怎么样的,要衡量一下在哪部分存值最合理。
      

  2.   

    跑在service和在activity里,对于其结果不是一样吗
      

  3.   

    android 默认的是屏幕长的那边是X轴。短的是Y轴