2

我想知道其他人是否也经历过这种情况。当连接到 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

4 回答 4

0

你能试着摇晃一下设备,看看罗盘读数是否出现。您也可以尝试将其移动到另一个区域(磁干扰较小).. 并且可以做一些数字八来校准设备。

于 2014-10-06T14:49:24.860 回答
0

我怀疑这不仅仅是 360 的问题。我刚收到 LG Watch R 并且指南针不起作用。有一个带有指南针的股票表盘,它总是指向同一个方向。我为 C|Geo 安装了一个地理缓存扩展,它应该指示到目标的距离和方位,它总是指向 12:00。
开发人员的说明表明这是 SDK 的一个已知问题,他在未来开发的计划功能中列出了此项目符号:

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

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

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

于 2014-12-30T14:08:36.500 回答
0

我有同样的问题。但前提是手表与 moto x 2013 (kitkat 4.4.4) 配对。使用华硕 padfone 2 (kitkat 4.4.2) 和 nexus 5 (Lollipop 5.1) 我没有问题。例如我试过这个应用程序: https ://play.google.com/store/apps/details?id=jack.campbell.messive.compass

与 moto 360 和 nexus 5 一起使用 moto360 和 moto x 2013 不起作用。我不知道为什么,但我想随着 Android Wear 的下一次更新会解决。

于 2015-05-28T10:22:24.957 回答
-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) {

}
于 2014-10-18T05:45:59.697 回答