我正在编写一个使用Sensor.TYPE_LINEAR_ACCELERATION的应用程序。
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION);但是,直到最近,每个SensorEvent都返回一个包含: NaN、NaN、NaN的值浮点数组。
我在LG手表上尝试了相同的代码,它正在返回我所期望的值。
SWR50上的软件版本如下:
Android磨损1.1.1.1929530
谷歌游戏服务7.5.71 (1955121-534)
Android操作系统5.1.1
请注意,Sensor.TYPE_ACCELEROMETER返回值(在开发人员选项中的制造商(菜单启动程序)应用程序中得到确认),因此加速计似乎不会损坏。
索尼的人能证实这个问题吗?否则,如果手表坏了,也许我需要买一块新的手表。
发布于 2015-06-16 21:56:00
听起来很奇怪,突然就停止工作了。
发布于 2016-02-19 10:13:03
所以看起来Sensor.TYPE_GRAVITY才是问题所在。它在重新启动后返回有效的结果,然后在下次运行应用程序时返回NaNs。LINEAR_ACCELERATION大概是用重力矢量来计算这个。
如果我不得不猜测,我会说,一些虚假的值正在被放入低通滤波器,它正在计算重力矢量,一旦发生这种情况,它就永远不会恢复。
我想如果它是一个随机的值被添加,那么偶尔它可能是有效的,这就是为什么偶尔它似乎是有效的。
我想解决的方法是读取Sensor.TYPE_ACCELEROMETER值,然后进行低通滤波来计算重力。
发布于 2016-05-18 22:32:29
我把我的索尼智能手表-3 SWR50固件升级到下面,我的应用程序不再从Sensor.TYPE_LINEAR_ACCELERATION得到回调。
Android磨损1.4.0.2715035
Google服务8.7.02 (2624717-534)
Android操作系统6.0.1
版本号: MEC24H
https://stackoverflow.com/questions/30855269
复制相似问题