检测跌倒

时间:2015-06-23 05:45:48

标签: android accelerometer

我正在开发一款应用程序,它通过测量x,y和z方向上的加速度值来访问加速度计以检测跌倒。下面是我的代码,我已经应用了算法,它使用了两个阈值(最小值和最大值)其余的算法,你可以在代码本身看到。我面临的问题是该应用程序没有显示吐司我已经用我朋友的电话进行了一些温和的实验。 将手机从一定高度(约30厘米)下降并抓住它。但屏幕上没有出现吐司。我无法确定我的ALGO或TOAST是否存在问题。我不知道下一步该做什么请帮忙。

@Override
public void onSensorChanged(SensorEvent event) {
    if (started) {
        double x = event.values[0];
        double y = event.values[1];
        double z = event.values[2];
        long timestamp = System.currentTimeMillis();
        Data data = new Data(timestamp, x, y, z);
        sensorData.add(data);
    }

    if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){
        double gacc=SensorManager.STANDARD_GRAVITY;
        double a=event.values[0];
        double b=event.values[1];
        double c=event.values[2];
        long mintime=System.currentTimeMillis();
        boolean min = false;
        boolean max = false;
        int m = 0;
        double xyz=Math.round(Math.sqrt(Math.pow(a,2)+Math.pow(b,2)+Math.pow(c,2)));

        if(xyz<=3.0){
            min = true;
        }
        if(min==true){
            m++;
            if(xyz>=14){
                max=true;
            }
        }
        if(min && max==true){
            Toast.makeText(MainActivity.this,"FALL DETECTED!",Toast.LENGTH_LONG).show();
            m=0;
            min=false;
            max=false;
        }
        if (m>4) {
            m=0;
            min=false;
            max=false;
        }
    }
}

0 个答案:

没有答案