一段时间后,Activity停止接收陀螺仪传感器的数值

4
我在开发一个应用程序,需要实时绘制加速度计和陀螺仪的值,分别在两个不同的活动中显示。加速度计正常工作,但是在陀螺仪活动中,随机时间段(大约1到10秒)后,值就不再更新,绘制也停止了。 以下是sensorChanged代码。
public SensorEventListener gyroListener = new SensorEventListener() {
    public void onAccuracyChanged(Sensor sensor, int acc) { }

    public void onSensorChanged(SensorEvent event) {
        float x = event.values[0];
        float y = event.values[1];
        float z = event.values[2];
        seriesx.appendData(new DataPoint(Lastx++,x),true,50);
        seriesy.appendData(new DataPoint(Lastx++,y),true,50);
        }
};

编辑:传感器的注册和注销:

 public void onResume() {
    super.onResume();
    sensorManager.registerListener(gyroListener, sensor,
            SensorManager.SENSOR_DELAY_NORMAL);
}

public void onStop() {
    super.onStop();
    sensorManager.unregisterListener(gyroListener);
}

你能否发布一下你在哪里注册和注销传感器监听器的代码?以上信息不足以预测问题。 - Nas
修改了答案。 - izSaad
你是否已经设置了陀螺仪传感器管理器,例如:sensor = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE); 并且在sensorchanged方法中进行检查,例如:if (event.sensor.getType() == Sensor.TYPE_GYROSCOPE) {} 这将有助于解决你的问题。 - Nas
是的,我有,但问题仍然存在。 - izSaad
1个回答

3

问题出在我运行应用程序的智能手表Moto 360的陀螺仪传感器上。然后,我在华为手表上测试了该应用程序,一切都正常。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接