gpt4 book ai didi

android - 传感器 StepCounter 有时无法在三星设备上正常工作

转载 作者:搜寻专家 更新时间:2023-11-01 08:26:05 26 4
gpt4 key购买 nike

我正在像这样从重新启动的接收步骤创建一个演示。

public class MainActivity extends AppCompatActivity implements SensorEventListener {
private SensorManager sensorManager;

@Override
public void onCreate(Bundle savedInstanceState) {
...
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
}

@Override
protected void onResume() {
super.onResume();
countSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
sensorManager.registerListener(this, countSensor, SensorManager.SENSOR_DELAY_UI);
}

@Override
public void onSensorChanged(SensorEvent event) {
if (event.sensor.getType() == Sensor.TYPE_STEP_COUNTER) {
Log.i("TAG","step from reboot" + String.valueOf(event.values[0]));
}
}
}

但是当我在我的设备 (SamSung Galaxy S4) 上测试时,STEP_COUNTER有时效果不佳 :(。我通过与 SHealth 比较来弄清楚

经过多次测试发现

时间差不多了,STEP_COUNTER返回等于 SHealth 的步骤 有时不同。所以我觉得SHealth可以使用另一个传感器来计算步数,但我不知道哪个传感器?我觉得不是STEP_DETECTOR因为STEP_DETECTOR关闭屏幕时返回很少的步骤。

有时候,STEP_COUNTERSHealth 时停止工作仍然返回步骤,例如,我走了大约 100 步 => SHealth 显示 110 和演示应用程序显示 100,然后我继续走大约 200 步 => SHealth 显示 305 和演示应用程序显示 121(好像它停止工作)

我还收到许多使用不同设备的用户的报告(评分较低 :( ) 但我只能在我的设备上重现它。

我不知道如何解决这个问题。我想STEP_COUNTER是接收步骤的最佳传感器(与 STEP_DETECTOR 比较)

如有任何帮助或建议,我们将不胜感激。

最佳答案

在使用手机的默认步数传感器时,我们也遇到过这个问题。但是,我们正在使用 TYPE_STEP_DETECTOR - 我们没有遇到您遇到的问题(超过 100000 名用户),所以也许哪里出了问题?这个问题与您不能依赖这种机制的方式非常相似。对于我们的案例,我们在很短的时间内收到了很多步骤。即使你是老虎,也走不了那么多步。

事情是这样的,三星操纵着操作系统,有很多东西在 nexus 设备上运行良好,但在三星设备上却不行。在尝试修复步进传感器的行为后,我们发现我们需要三星手机或不支持它的手机的替代品。

仅供引用,我们遇到过某些手机(主要是摩托罗拉)在设备中没有步数传感器,因此尝试查找传感器时返回 null。

  SensorManager sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
Sensor stepDetector = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);
if (stepsDetector != null) {
//Do something
}

您可以使用 wakelock and accelerometer 实现您自己的机制(电池消耗巨大,当心)。

关于android - 传感器 StepCounter 有时无法在三星设备上正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44944114/

26 4 0
文章推荐: c# - winforms listview 不在详细 View 中显示项目
文章推荐: c# - 在 .NET 1.1 中获取编码列表
文章推荐: c# - 在 Protobuf.NET 中序列化 List (其中对象支持原语)?