【问题标题】:Find Magnet in android在android中找到磁铁
【发布时间】:2012-12-07 05:23:50
【问题描述】:

我想要做什么:- 我想用我的安卓设备找磁铁。

我已经做了什么:- 我正在像这样注册我的磁场类型传感器

Sensor magnetometer = mSensorManager
            .getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);

onSensorChanged(SensorEvent event) 方法中,如果类型是磁场,我将从 event.value 获取 x,y,z。

到目前为止一切都很好,然后我使用
Math.sqrt((x*x)+(y*y)+(z*z)) 从这三个值中得到绝对值,然后得到一个绝对值。
但我认为这仅与设备有关,因为当我将一块磁铁靠近我的设备时,什么都不会发生(绝对值和它的 (x,y,z) 都不会改变。

谢谢。

【问题讨论】:

  • 这可能是硬件故障。你确定你的设备真的在工作吗?您是否尝试过任何其他使用磁场的应用程序?这个第三方应用程序有效吗?您是否在其他设备上尝试过您的代码?

标签: android sensors


【解决方案1】:

我猜你的设备测量的不是你的磁铁,而是地球的磁场。当您以这种方式连接值时,与设备的方向无关,您始终可以返回相同的值。除了返回的值始终为 0 之外,您只需不测量任何内容,这可能是硬件故障。

【讨论】:

    【解决方案2】:

    我也是 Android 开发的新手,有兴趣创建一个类似的应用程序,当磁铁足够靠近我的手机时,我会收到通知。

    我使用相同的公式来计算净磁场,如果您参考传感器管理器上的此 Android 文档here,您会发现地球磁场的 MAX 和 MIN 值。

    我的应用使用相同的范围来检测磁铁,并且工作正常。根据您需要的“混合度”,您可以根据需要调整值。

    如果您在靠近磁铁时没有注意到磁场值有任何显着差异,我认为这是一些硬件问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多