再現する手順
通常のサンプリング周期で重力センサーのリスナーを登録します。独自のコード (以下の基本的な例) を使用するか、単にMy Sensorsをインストールして、メニューからセンサーの更新レートをNormalに設定してください。
Sensor gravitySensor = sensorManager.getDefaultSensor(Sensor.TYPE_GRAVITY); sensorManager.registerListener(callback, gravitySensor, SENSOR_DELAY_NORMAL);
センサー出力を観察します。
event.values[1]
デバイスが直立している場合、Y 軸 ( ) は ~9.7 を報告するはずです。- デバイスを 1 回か 2 回、強くすばやく振ってください。その後、再び垂直に保持します。
- これを行った後、センサー出力を見てください。
- 最初の 2 秒間、Y 軸の値は 9.7 から -9.7 に移行します。
- 次の 6 秒間、Y 軸の値は反転したままです (-9.7)。
- 次の 2 秒間、Y 軸の値は 9.7 に戻ります。
ユーザーがデバイスを振ったり振ったりするたびに 10 秒間不正なデータが表示されるのは完全に直感に反するため、これは私にはバグのように見えます。
デバイスの詳細
- Samsung Galaxy S5 (G900I) の使用
- Android 5.0 の実行 (Android 6 へのアップグレード後にも発生)
- 影響を受けるセンサー
- 重力センサー (Samsung Electronics) (バージョン 3)
- MPL 回転ベクトル (Invensense) (バージョン 1)
- MPL Game Rotation Vector (Invensense) (バージョン 1)
- 方向センサー (Samsung Electronics) (バージョン 1)
私の質問
- これは、このデバイスの正常な動作ですか? (Galaxy S5で発生しますか?)
- これは一般的な Android デバイスの正常な動作ですか? (上記のセンサー タイプを搭載した Android デバイスで発生しますか?)
- これを防ぐ方法はありますか?