0

Android でセンサーマネージャー データ (特に加速度計データ) をバイパスする方法を見つけなければなりません。私はAndroidに比較的慣れていないため、続行する方法がわかりません。実際のセンサー マネージャー データを置き換えるには、(できれば SD カードのテキスト ファイルから) ダミーのセンサー データをフィードする必要があります。

私の最終的な目標は、加速度計データを使用して決定を下すアプリのテストにこれを使用することです。

センサー データを要求するすべてのアプリにダミー データをフィードできるはずです。任意のヘルプまたはガイダンスをいただければ幸いです。

PS: Nexus-5 Android Phone でこれを達成したいと思います。

4

1 に答える 1

1

SensorManagerは、 を介してセンサーからのデータを提供しますSensorEventListener。センサー レコードには、float の配列が含まれます。の場合、AccelerometerX、Y、Z 軸方向の加速度値を示す浮動小数点数が 3 つあります。したがって、 の実装内で、SensorEventListenerこれらの値をテストに必要なダミーの値で上書きできます。

@Override
public void onSensorChanged(SensorEvent event) {

        int type      = event.sensor.getType();
        if(type == Sensor.TYPE_ACCELEROMETER){
           float result[] = event.values;   
           // modify the values here  
        }

}

SensorManagerEDIT:レコード生成率を提供するために、のメソッドでそれを示すことができます:

registerListener(this, sensor, rate_in_microseconds);

ただし、ドキュメンテーションがここで示しているように、提供されたレートは単なるヒントであり、イベント レートを保証するものではありません。

レート センサー イベントが配信されます。これはシステムへのヒントにすぎません。イベントは、指定された速度より速くまたは遅く受信される場合があります。通常、イベントはより速く受信されます。値は、SENSOR_DELAY_NORMAL、SENSOR_DELAY_UI、SENSOR_DELAY_GAME、または SENSOR_DELAY_FASTEST のいずれか、またはマイクロ秒単位のイベント間の目的の遅延である必要があります。マイクロ秒単位の遅延の指定は、Android 2.3 (API レベル 9) 以降でのみ機能します。以前のリリースでは、SENSOR_DELAY_定数のいずれかを使用する必要があります。*

于 2014-08-26T16:45:29.977 に答える