Moto 360中的磁场传感器不发送更新

时间:2014-10-04 18:59:10

标签: android wear-os moto-360

我想知道其他人是否也经历过这种情况。当连接到Moto 360(Android Wear)上的Sensor.TYPE_MAGNETIC_FIELD传感器时,我没有收到任何更新。

以下代码全部有效:

SensorManager sm = (SensorManager) this.getSystemService(Context.SENSOR_SERVICE);
Sensor magnetic = sm.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
Log.i("Wear", "magnetic: " + magnetic);

输出:

I/Wear    (17471): magnetic: {Sensor name="Compass Sensor", vendor="Motorola", version=1, type=2, maxRange=4900.0, resolution=0.15, power=0.45, minDelay=40000}

但是在向此传感器注册侦听器之后,不会触发任何事件。

其他传感器(如加速度计和陀螺仪)工作正常。

4 个答案:

答案 0 :(得分:0)

你可以尝试稍微摇动设备,看看罗盘读数是否显示出来。您也可以尝试将其移动到另一个区域(磁干扰较小)..也许可以做一些数字8来校准设备。

答案 1 :(得分:0)

我怀疑这是一个比360更大的问题。我刚收到LG Watch R并且指南针不起作用。有一个带有指南针的库存表面,它总是指向同一个方向。我为C | Geo安装了一个geocaching扩展,它应该指示目标的距离和方位,它总是指向12:00。 开发人员的注释表明这是SDK的一个已知问题,他在计划的功能中列出了这个项目符号以供将来开发:

  

全面实施对指南针的支持(目前无法实现)   由于Android Wear SDK问题)。

来自:https://github.com/culmor30/cgeo-wear

因此,这似乎是SDK的已知问题/限制。

答案 2 :(得分:0)

我遇到了同样的问题。但只有当手表与moto x 2013(kitkat 4.4.4)配对时。使用华硕padfone 2(kitkat 4.4.2)和nexus 5(棒棒糖5.1),我不会遇到问题。 例如,我尝试过这个应用程序:  https://play.google.com/store/apps/details?id=jack.campbell.messive.compass

使用moto 360和nexus 5与moto360和moto x 2013配合使用并不起作用。 我不知道为什么,但我想Android安装的下一次更新将会解决。

答案 3 :(得分:-1)

您希望注册一个侦听器,并让该侦听器在返回时读取值:

sm.registerListener(this, magnetic, SensorManager.SENSOR_DELAY_NORMAL);

然后实现监听器并获取值(例如,类似这样的东西):

/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 * sensors
 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
@Override public void onSensorChanged(SensorEvent event) {

    if(event.sensor.getType() == magnetic.getType()) {
        float mag = event.values[0];
    }
}

@Override public void onAccuracyChanged(Sensor sensor, int accuracy) {

}