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 上有一个方法,shake 上的所有功能都可以在这个方法中实现:

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


}

您可以访问此处的链接以使用 android 中的传感器

另请访问 stackoverflow内部链接以获取更多信息。

于 2012-10-26T04:35:45.563 回答