Android中的SensorEventListener:考虑单个值

Android中的SensorEventListener:考虑单个值,android,Android,我有以下要求-当我将手机向右倾斜时,A队得1分,当我将手机向左倾斜时,B队得1分,我使用给定的代码进行此操作: public class MainActivity extends Activity { private SensorManager mSensorManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); set

我有以下要求-当我将手机向右倾斜时,A队得1分,当我将手机向左倾斜时,B队得1分,我使用给定的代码进行此操作:

public class MainActivity extends Activity {

private SensorManager mSensorManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
}
private final SensorEventListener mSensorListener = new SensorEventListener() {

  public void onSensorChanged(SensorEvent se) {
    float x = se.values[0];
    float y = se.values[1];
    float z = se.values[2];
    if((double)Math.round(x * 100000) / 100000>8.00000){
        Log.d("sensor", "=====LEFT====");
    }
    else if((double)Math.round(x * 100000) / 100000 <-8.00000){
        Log.d("sensor", "=====RIGHT====");
    }
  }

  public void onAccuracyChanged(Sensor sensor, int accuracy) {
  }
};

@Override
protected void onResume() {
  super.onResume();
  mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
}

@Override
protected void onPause() {
  mSensorManager.unregisterListener(mSensorListener);
  super.onPause();
}

}
公共类MainActivity扩展活动{
私人传感器管理器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
msSensorManager=(SensorManager)getSystemService(传感器服务);
}
私有最终SensorEventListener MSSensorListener=新的SensorEventListener(){
传感器更改时的公共无效(传感器事件se){
浮动x=se.值[0];
浮动y=se.值[1];
浮动z=se.值[2];
如果((双精度)数学四舍五入(x*100000)/100000>8.00000){
Log.d(“传感器”,“左==”);
}

否则如果((双)数学四舍五入(x*100000)/100000你可能想要一台小型状态机。开始时,你处于直立状态。如果你检测到足够的倾斜,你给正确的团队1分并移动到倾斜状态。当你处于倾斜状态时,没有团队会得到分数,但你会寻找设备直立返回。如果你看到了,你会将其移回原位到直立状态。重复。

您建议保持直立状态布尔值,这样在上面的if-elseif条件中,“is直立”布尔值将变为false状态。直立值在另一个elseif条件中变为true。我是否正确?