对于我的硕士论文,我正在开发一个能够从三星Galaxy S5的3轴加速度计收集数据的安卓应用程序。因为我想跟踪人类活动,所以我需要一个大约50 of的采样率。我通过将采样率设置为SENSOR_DELAY_GAME来实现这一点,它工作得很好。为了检查采样率,我在电话显示屏上显示了包含加速计数据的列表的长度。当手机屏幕打开时,一切正常,即使我在不同应用程序之间进行数据采集时进行切换。这样做,我在30秒内收到大约1500个值,这意味着采样率的准确性适合我的目的。
我现在的问题是,当屏幕超时时,加速度计的采样率会降低到5 Hz,当屏幕打开时,采样率又会变到50 Hz。有没有办法把加速度计的采样率固定到50 Hz?
PS:我更喜欢不将屏幕设置为永久打开的解决方案,以节省电池寿命。
谢谢,Ziegi
编辑:我添加了加速度计所需的必要方法。未使用已有的方法onPause()、onStop()和onResume()导致只有在发生停止按钮单击事件时测量才会停止。
public void initListeners(){
mSensorManager.registerListener(this,
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_GAME);
}
public void onSensorChanged(SensorEvent event) {
if (startFlag == true) {
switch(event.sensor.getType()) {
case Sensor.TYPE_ACCELEROMETER:
// copy new accelerometer data into accel array
// then calculate new orientation
System.arraycopy(event.values, 0, accel, 0, 3);
calculateAccMagOrientation();
xText.setText("X: " + decimal.format(event.values[0]));
yText.setText("Y: " + decimal.format(event.values[1]));
zText.setText("Z: " + decimal.format(event.values[2]));
xValue.add(event.values[0]);
yValue.add(event.values[1]);
zValue.add(event.values[2]);
try {
xSize.setText(String.valueOf(xValue.size()));} catch(Exception e) {
Toast.makeText(getBaseContext(), "Fehler bei Add to List", Toast.LENGTH_SHORT).show();
}
break;
}
}
}
发布于 2016-03-12 22:05:00
我现在的问题是,当屏幕超时时,加速度计的采样率会降低到5 Hz,当屏幕打开时,采样率又会变到50 Hz。有没有办法把加速度计的采样率固定到50 Hz?
PS:我更喜欢不将屏幕设置为永久打开的解决方案,以节省电池寿命。
这就是重点所在。当屏幕关闭时,应使用较少的电力。用户还期望功耗更低。以较低的采样率进行采样是任何像样的操作系统处理功率限制情况的许多方法之一。
因此,如果有任何支持的方法来提高采样率,而手机的屏幕关闭,我会感到非常惊讶。
发布于 2016-05-01 02:46:34
您可能希望将读取加速度计的代码作为服务运行,而不是在应用程序中运行。在这里类似的回答中,AleAdam很好地描述了这一点:Keep UI Thread running when screen is off
在另一个线程答案中提到了几个教程。
发布于 2016-09-15 14:05:16
你可能想要的是保持你的CPU以相同的速度运行,试着使用Wakelock:
PowerManager powerManager = null;
PowerManager.WakeLock wakeLock = null;
powerManager = (PowerManager) getSystemService(POWER_SERVICE);
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
"MyWakelockTag");
wakeLock.acquire();
https://stackoverflow.com/questions/35958160
复制相似问题