0

私はGalaxy Tab 1000を持っています。

どんな動きも識別するコードを書こうとしています。

私は電話でバージョン2.2を持っています。

これは oncreate コードです。


OnCreate()
    mySensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 
        mySensorManager.registerListener(mySensorEventListener, mySensorManager
                .getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
                SensorManager.SENSOR_DELAY_NORMAL); // 

これはセンサー onsensorchanged 実装 (非常に単純だと思います) ですが、機能していません


if (event.sensor.getType() == SensorManager.SENSOR_ACCELEROMETER) // Do WORK

event.sensor.getType() は 1 を返します

もしそうなら: getSensorList(Sensor.TYPE_ALL); コンパス、コンパス、BMA150 (加速度)、温度、磁石、近接、光、ジャイロのセンサーを取得します。

(奇妙な - 3.0 でしか起きないと思っていた)

電話でモーション検出を取得する方法を教えてください。

ありがとう


4

1 に答える 1

1

私はあなたが何をしたいのか正確には少し混乱していますが、私が取るところから、あなたは onSensorChanged で加速度データを取得したいと考えています。作成時は問題ないように見えますが、registerListener から返される bool をチェックすることで、リスナーが正しく登録されているかどうかを確認できます。イベントをリッスンし、返された値を取得するときに私が行うことは次のとおりです。

    @Override
    public void onSensorChanged(SensorEvent event)
    {
        // If the sensor data is unreliable return
        if (event.accuracy == SensorManager.SENSOR_STATUS_UNRELIABLE)
        {
            //Toast.makeText(main.this, "Sensor Status Unreliable",Toast.LENGTH_SHORT).show();
            return;
        }


        // Gets the value of the sensor that has been changed
        switch (event.sensor.getType())
        {
        case Sensor.TYPE_ACCELEROMETER:
            m_vAccel = event.values.clone();
            break;
        }

それ以外の場合は、加速度計が重力を差し引いたものと同じ線形加速度センサーを使用することもできます。http://developer.android.com/reference/android/hardware/SensorEvent.html

于 2011-06-16T16:26:37.977 に答える