采样Android传感器

时间:2012-09-05 22:10:33

标签: android android-sensors timertask

有没有办法让Android传感器的值每5分钟一次?

例如,有没有一种方法可以每隔5分钟轮询一次AMBIENT_TEMPERATURE传感器,无论温度是否有变化?

现在,我只能在调用时访问onSensorChanged(SensorEvent arg0)中的值,所以如果温度没有从启动变化,我永远无法访问温度值?

谢谢! =]

2 个答案:

答案 0 :(得分:0)

据我记得,每个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方法)。

答案 1 :(得分:0)

您可以尝试使用闹钟服务,每五分钟重复一次。

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

我建议您阅读this first然后this,了解如何设置重复闹钟,广播接收器可以更新您的传感器信息。

希望这有助于=)