代码之家  ›  专栏  ›  技术社区  ›  corgichu

Android传感器采样

  •  0
  • corgichu  · 技术社区  · 13 年前

    有没有办法从安卓传感器中获得值,比如每5分钟一次?

    例如,有没有一种方法可以让我每5分钟轮询一次AMBIENT_TEMPERATURE传感器,而不管温度是否变化?

    现在,我只能访问 onSensorChanged(SensorEvent arg0) 当它被调用时,如果启动后温度没有变化,我永远无法访问温度值?

    谢谢!=]

    2 回复  |  直到 13 年前
        1
  •  0
  •   sschrass Maverick    13 年前

    据我记忆所及,senors每 onSensorChanged -事件。您可以设置一个线程,每5分钟读取一次值。

    编辑 以下为:

    public class OrientationHandler implements SensorEventListener {
        private SensorManager sensorManager = null;
        private static float[] values = new float[3];
    
        public OrientationHandler(Context context) {
            sensorManager = (SensorManager) context
                            .getSystemService(Context.SENSOR_SERVICE);
            sensorManager.registerListener(this, sensorManager
                                           .getDefaultSensor(Sensor.TYPE_ORIENTATION),
                                           SensorManager.SENSOR_DELAY_FASTEST);
        }
    
        public void onSensorChanged(SensorEvent event) {
            if (event.sensor.getType() == Sensor.TYPE_ORIENTATION) {
                synchronized (this) {
                    OrientationHandler.values = event.values;
                }
            }
        }
    }
    

    OrientationHandler.values可以从类外部访问(如果您自己编写了一个公共Getter方法)。

        2
  •  0
  •   Max Rasguido    13 年前

    你可以尝试使用闹钟服务,设置为每五分钟重复一次。

    不过,我从未使用过传感器,无论如何,我认为有一些方法可以一次性获得传感器值。

    我建议你读 this first 然后 this 学习如何设置重复警报,该警报可以在其广播接收器上更新您的传感器信息。

    希望这能有所帮助=)