我正在开发一个跟踪用户步骤的Unity应用程序。它使用的是先前开发者已编写的Android插件。此插件访问Android step counter sensor。在开发人员门户网站中,声明它“在API级别19中添加”。
步进计数器功能在我的OnePlus 5上工作正常。但是,我找不到任何提到具有此传感器的OnePlus 5。它也在Honor 8上工作,而且,没有提到有这种传感器的手机。我甚至直接联系了华为,他们明确表示他们目前的型号都没有步进计数器传感器,只有加速度计。
是否可以知道哪些设备可以与当前插件一起使用?步数计数器是实际物理传感器还是仅使用加速度计的虚拟传感器?它仅限于某些设备,还是当前的插件可以在任何运行Android 4.4或更新的具有加速度计的设备上运行?
答案 0 :(得分:1)
步数计数器不是物理传感器,而是虚拟传感器或称为复合传感器。它使用加速度计和可能的其他传感器(如果在引擎盖下可用)来计算步骤。例如,线性加速度传感器是另一种类型的复合或虚拟传感器,其通过从加速度计中减去重力值而从加速度计获得线性加速度。
它应该可以在任何具有Android 4.4(及更新版本)且至少具有加速度计的设备上运行。您可以在代码中随时查看其可用性(如下所示):
Sensor countSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
if (countSensor != null) {
sensorManager.registerListener(this, countSensor, SensorManager.SENSOR_DELAY_UI);
} else {
Toast.makeText(this, "Count sensor not available!", Toast.LENGTH_LONG).show();
}
有关它如何运作的详细信息,请阅读: https://source.android.com/devices/sensors/sensor-types#step_detector https://source.android.com/devices/sensors/sensor-types