android - 如何确定哪些 Android 设备可以使用计步器?

标签 android unity-game-engine

我正在开发一个跟踪用户步数的 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/

相关文章:

android - 使用 targetSdkVersion 25 和 minSdkVersion 19 构建 Android 应用程序

android - 具有 View 动态获取行/列的 GridLayout

android - ModalBottomSheet中的tabBar具有动态大小的Flutter

android - 更新时的 Unity persistentDataPath 问题

android - lateinit property dispatchingAndroidInjector 还没有初始化

android - 我在Android 10中收到IMEI编号错误

java - 安装 .apk 后游戏在菜单中不可见

ios - FacebookSDK for Unity iOS Mach-O 链接器错误 - undefined symbol _iosLogin,

c# - 与 firebase 集成的 Unity 可在 Unity 编辑器上运行,但不适用于移动设备

c# - 每次生成随机数并且不包括最后一个数字