我正在开发一个跟踪用户步数的 Unity 应用程序。它使用以前的开发人员已经编写的 Android 插件。此插件访问 Android step counter sensor .在开发人员门户中,声明它是“在 API 级别 19 中添加的”。
步数计数器功能在我的 OnePlus 5 上工作得很好。但是,我找不到任何关于配备此传感器的 OnePlus 5 的提及。它也适用于 Honor 8,同样,没有提及该手机具有此传感器。我什至直接联系了华为,他们明确表示他们目前的型号都没有步数传感器,只有加速度计。
是否可以知道当前插件可以使用哪些设备?计步器是实际的物理传感器还是仅使用加速度计的虚拟传感器?它是否仅限于某些设备,或者当前插件是否可以在任何运行 Android 4.4 或更高版本且具有加速度计的设备上运行?
最佳答案
计步器不是物理传感器,而是虚拟传感器,或者称为复合传感器。它使用加速度计和可能的其他传感器(如果在引擎盖下可用)来计算步数。例如,线性加速度传感器是另一种类型的复合或虚拟传感器,它通过从加速度计中减去重力值来获得线性加速度。
它应该可以在任何至少有一个加速度计的 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
关于android - 如何确定哪些 Android 设备可以使用计步器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46570397/