Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 传感器步进计数器有时在三星设备上无法正常工作_Android_Sensors_Samsung Mobile_Pedometer - Fatal编程技术网

Android 传感器步进计数器有时在三星设备上无法正常工作

Android 传感器步进计数器有时在三星设备上无法正常工作,android,sensors,samsung-mobile,pedometer,Android,Sensors,Samsung Mobile,Pedometer,我创建了一个演示从接收步骤从重新启动像这样 public class MainActivity extends AppCompatActivity implements SensorEventListener { private SensorManager sensorManager; @Override public void onCreate(Bundle savedInstanceState) { ... sensorManager

我创建了一个演示从接收步骤从重新启动像这样

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]));
        }
    }
}
但是,当我在我的设备(三星Galaxy S4)上测试时,有时会出现问题:(.我通过与

经过多次测试,我发现

差不多是时候了,返回的步数等于,但是有时不同。因此我想可能会使用另一个传感器来计算步数,但我不知道是哪个传感器?我想这不是因为关闭屏幕时返回的步数很少

有时,在返回步骤的同时停止工作,例如,我走大约100步=>SHealth display 110和demo app display 100,然后我继续走大约200步=>SHealth display 305和demo app display 121(看起来好像停止了工作)

我还收到来自不同设备的许多用户的报告(低评级:()),但我只能在我的设备上复制它

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


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

您是否在离开应用程序时注销了传感器?根据SDK文档:

“如果希望在较长时间内持续跟踪步数请勿注销此传感器,这样即使AP处于挂起模式,它也会在后台持续计数步数,并在AP唤醒时报告聚合计数。”


希望这将有助于……

我们在使用手机的默认steps传感器时也遇到了这个问题。但是,我们正在使用-我们没有您遇到的问题(超过100000个用户),所以可能是出了问题? 这个问题很相似,你不能依赖这样的机制。就我们的情况而言,我们在短时间内已经收到了很多步骤。即使你是一只老虎,你也不能做出那么多步骤

问题是,三星操纵操作系统,有很多东西在nexus设备上运行良好,但在三星设备上却不行。 在尝试修复阶跃传感器的行为后,我们发现我们需要为三星手机或不支持它的手机提供一种替代方案

仅供参考,我们遇到一些手机(主要是摩托罗拉)在设备中没有steps传感器,因此尝试查找传感器时返回null

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

您可以使用(电池耗电量巨大,请小心)

实现自己的机制。

谢谢您,但我不会在离开应用程序时注销传感器。