Android 屏幕关闭时是否可以覆盖SensorManager频率?

Android 屏幕关闭时是否可以覆盖SensorManager频率?,android,intervals,accelerator,sensormanager,Android,Intervals,Accelerator,Sensormanager,我正在开发一个简单的应用程序,当加速度计达到某个值时,它会播放声音。 当屏幕打开时,没有问题。加速器运行的频率正常。 这工作正常。 现在,我想在屏幕关闭时执行此操作。 由于某些原因,无论传感器延迟如何,我每秒仅获得2次传感器更新。 我怀疑这与安卓系统省电有关。但我需要更高的频率来准确读取传感器数据。 在我转向唤醒锁定之前,我想知道是否有可能覆盖这种“强制”频率降低,这是否是一个设备相关的问题。我需要它保持更高的更新频率,即使屏幕关闭。我不知道,但您是否使用传感器延迟最快的方式获得更多更新

我正在开发一个简单的应用程序,当加速度计达到某个值时,它会播放声音。
当屏幕打开时,没有问题。加速器运行的频率正常。
这工作正常。

现在,我想在屏幕关闭时执行此操作。
由于某些原因,无论传感器延迟如何,我每秒仅获得2次传感器更新。
我怀疑这与安卓系统省电有关。但我需要更高的频率来准确读取传感器数据。


在我转向唤醒锁定之前,我想知道是否有可能覆盖这种“强制”频率降低,这是否是一个设备相关的问题。我需要它保持更高的更新频率,即使屏幕关闭。

我不知道,但您是否使用传感器延迟最快的方式获得更多更新?然后将类似的内容插入onSensorChanged():


传感器延迟值只是建议值(或者至少是Android 4.0/4.1左右)。根据具体实施情况,传感器可能会以比请求更快的速度发送事件。这由驱动程序自行决定,不同设备型号的行为可能有所不同


为什么要限制传感器的事件传递速率?如果您正在后台进行复杂的处理,并希望减少处理器上的负载,请考虑以下方法:当接收和处理事件时,记录其时间戳。当下一个事件到达时,计算其时间戳与先前存储的时间戳之间的差异。仅当时间戳差异至少与阈值一样大时才处理事件。虽然这不会降低事件传递率,但会减少处理时间,因为n个事件中只有一个得到处理。

当屏幕关闭时,传感器延迟不会改变间隔。不管我使用什么传感器延迟,它都会回落到每秒2次更新。你认为这是一个特殊的场合吗?我不知道。从未在设备睡眠时使用传感器。我猜是时候阅读SensorListener文档了,也许你可以使用部分唤醒锁。我不知道你到底想干什么。也许广播接收器能用?我想做个撞击探测器。然而,问题不在于我会怎么做。我只是想知道是否可以禁用间隔递减。我在谷歌上找不到它,所以我的最后一个选择是hahaThanks,以获得回复:)。但这不是我想要的。我重新措辞了我原来的问题,试图澄清我的真正意思。
public void onSensorChanged(SensorEvent event)
{
    if (event.sensor.getType() == Sensor.TYPE_)
    {
    long actualTime = System.currentTimeMillis();
        if (actualTime - lastUpdate > 63)
        {
        lastUpdate = actualTime;
        // update
        }
    }
}