0

ユーザーが電話で動きをしたことを検出する方法があるかどうかは誰にもわかりません。特に、ユーザーが後方 (または自分自身に向かって) にすばやく移動したことを検出しようとしています。

解決策を知っている人はいますか?

4

2 に答える 2

1

加速度計を探しているようですね。センサーの動きをリッスンする SensorEventListener を実装するクラスの例を次に示します。

public class AccelerometerHandler implements SensorEventListener
{
    float accelX;
    float accelY;
    float accelZ;

    public AccelerometerHandler(Context paramContext)
    {
        SensorManager localSensorManager = (SensorManager)paramContext.getSystemService("sensor");

        if (localSensorManager.getSensorList(1).size() != 0)
            localSensorManager.registerListener(this, (Sensor)localSensorManager.getSensorList(1).get(0), 1);
    }

    public float getAccelX()
    {
        return this.accelX;
    }

    public float getAccelY()
    {
        return this.accelY;
    }

    public float getAccelZ()
    {
        return this.accelZ;
    }

    public void onAccuracyChanged(Sensor paramSensor, int paramInt)
    {
    }

    public void onSensorChanged(SensorEvent paramSensorEvent)
    {
        this.accelX = paramSensorEvent.values[0];
        this.accelY = paramSensorEvent.values[1];
        this.accelZ = paramSensorEvent.values[2];
    }
}
于 2012-10-26T04:38:15.223 に答える
0

次のように sensorListener を実装する必要があります。

public class MotionActivity extends Activity implements SensorListener {

}

これには onSensorChanged のメソッドがあり、シェイクのすべての機能はこのメソッドで実装できます。

public void onSensorChanged(int sensor, float[] values) {


}

Android でセンサーを操作するには、こちらのリンクにアクセスしてください。

詳細については、stackoverflow内部リンクも参照してください。

于 2012-10-26T04:35:45.563 に答える