我正在编写一个使用Sensor.TYPE_LINEAR_ACCELERATION的应用程序。
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_ACCELERATION);
直到最近才开始工作,但每个SensorEvent现在返回一个值float数组,其中包含:NaN,NaN,NaN。
我在LG手表上尝试了相同的代码,它正如我所期望的那样返回值。
SWR50上的软件版本是:
Android Wear 1.1.1.1929530
Google Play服务7.5.71(1955121-534)
Android OS 5.1.1
请注意,Sensor.TYPE_ACCELEROMETER会返回值(已在开发者选项中的制造商(菜单 - 启动器)应用中确认),因此加速度计似乎不会被破坏。
索尼的任何人都可以确认这个问题吗?否则,如果它被打破,我可能需要买一块新手表。
答案 0 :(得分:1)
听起来很奇怪它会突然停止工作。
答案 1 :(得分:1)
所以看起来像Sensor.TYPE_GRAVITY是个问题。它在重新启动后返回有效结果,然后在下次运行应用程序时返回NaN。据推测,LINEAR_ACCELERATION正在使用重力矢量来计算它。
如果我不得不猜测我会说正在计算重力矢量的低通滤波器中存在一些虚假值,一旦发生这种情况就永远无法恢复。
我想如果它是一个随机值,那么偶尔它可能是有效的,这就是为什么它偶尔会起作用。
我想解决方法是改为读取Sensor.TYPE_ACCELEROMETER值并进行低通滤波以解决重力问题。
答案 2 :(得分:0)
我将Sony智能手表3 SWR50固件升级到以下版本,我的应用程序不再从Sensor.TYPE_LINEAR_ACCELERATION获得回调。
Android Wear 1.4.0.2715035
Google Play服务8.7.02(2624717-534)
Android OS 6.0.1
内部编号:MEC24H