我正在android中创建一个应用程序,我需要检测这个人是否摔倒了.我知道这个问题已经被问及在其他论坛中使用矢量数学但是我没有得到准确的结果.
以下是我检测跌倒的代码:
@Override
public void onSensorChanged(SensorEvent arg0) {
// TODO Auto-generated method stub
if (arg0.sensor.getType()==Sensor.TYPE_ACCELEROMETER) {
double gvt=SensorManager.STANDARD_GRAVITY;
float vals[] = arg0.values;
//int sensor=arg0.sensor.getType();
double xx=arg0.values[0];
double yy=arg0.values[1];
double zz=arg0.values[2];
double aaa=Math.round(Math.sqrt(Math.pow(xx, 2)
+Math.pow(yy, 2)
+Math.pow(zz, 2)));
if (aaa<=6.0) {
min=true;
//mintime=System.currentTimeMillis();
}
if (min==true) {
i++;
if(aaa>=13.5) {
max=true;
}
}
if (min==true && max==true) {
Toast.makeText(FallDetectionActivity.this,"FALL DETECTED!!!!!" ,Toast.LENGTH_LONG).show();
i=0;
min=false;
max=false;
}
if (i>4) {
i=0;
min=false;
max=false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
为了解释上面的代码,我使用了矢量和并检查该值是否已达到低于或等于6(同时下降)并突然大于13.5(着陆时)以确认下降.
现在我在论坛上被告知如果设备仍然是矢量和将返回值9.8.虽然下降它应该接近0并且在着陆时应该到20左右.在我的情况下似乎没有发生这种情况.如果我在任何地方出错,请有人建议吗?
我正在开发一个需要一些设计的Android应用程序,但我基本上是一个开发人员,他对设计内容知之甚少,而且我正在单独从事这些项目.任何人都可以帮助我如何设计或一些我可以学习的好链接?你还可以提供一些链接,这将是一个工具,我可以为我的Android应用程序创建像样的图标和图像?
谢谢.