首页 > 解决方案 > 简单跌倒检测

问题描述

我正在尝试制作一个用于简单跌倒检测的应用程序。我正在尝试类似下面的东西 -

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //.....................

    //Creating Sensor Manager
    SM = (SensorManager) getSystemService(SENSOR_SERVICE);

    //Accelerometer Sensor
    sensor = SM.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
}


@Override
public  void onSensorChanged(final SensorEvent event){
    if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER){
        sum = Math.round(Math.sqrt(Math.pow(event.values[0], 2) + Math.pow(event.values[1], 2) + Math.pow(event.values[2], 2)));

        //binding with a possible range
        if (sum <= 20.0){
            min = true;
        }

        if (min == true){
            if (sum >= 40.0){
                max = true;
            }
        }

        if (min == true && max == true){
            SM.unregisterListener(this);
            Toast.makeText(this,"Fall", Toast.LENGTH_SHORT).show();
            //doing other stuff like - countdown timer with alert dialog, sending sms etc.
        }
    }
}

我面临一些问题。将手机放在口袋里的人摔倒时不会给出结果,并且在走路时有时会给出错误的结果(更快)。为了改善这一点,我应该怎么做,有人可以帮助我吗?

标签: javaandroidaccelerometersensorsandroid-sensors

解决方案


推荐阅读