3

私がしようとしていること:- Android デバイスを使用して磁石を見つけたいと思います。

私がまだやったこと:- 私はこのようなタイプの磁場のセンサーを登録しています

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

メソッドでonSensorChanged(SensorEvent event)は、タイプが磁場の場合、event.value から x、y、z を取得しています。

これまではすべて問題ありません。次に、使用してこれら 3 つの値から絶対値
Math.sqrt((x*x)+(y*y)+(z*z))を取得し、1 つの絶対値を取得します。
しかし、これはデバイスにのみ関連するものだと思います.1つの磁石をデバイスに近づけても何も起こらないためです(絶対値も(x、y、z)の変化もありません.

ありがとう。

4

2 に答える 2

0

私も Android 開発の初心者であり、同様のアプリの作成に興味がありました。このアプリでは、磁石が携帯電話に十分に近づくと通知されます。

正味の磁場を計算するために同じ式を使用しました。ここでセンサー マネージャーに関するこの Android ドキュメントを参照すると、地球の磁場の最大値と最小値がわかります。

私のアプリは同じ範囲を使用して磁石を検出し、正常に動作します。必要な「近接性」に応じて、必要に応じて値を微調整できます。

場合によっては、磁石を近づけても磁場の値に大きな違いが見られない場合がありますが、これはハードウェアの問題だと思います。

于 2013-01-16T08:15:46.900 に答える