Java 简易坠落检测
我正在尝试做一个简单的秋天检测应用程序。我正在尝试下面的东西-Java 简易坠落检测,java,android,accelerometer,sensors,android-sensors,Java,Android,Accelerometer,Sensors,Android Sensors,我正在尝试做一个简单的秋天检测应用程序。我正在尝试下面的东西- @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //..................... //Creating Sensor Manager SM = (Se
@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.
}
}
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//.....................
//创建传感器管理器
SM=(传感器管理器)getSystemService(传感器服务);
//加速度传感器
传感器=SM.getDefaultSensor(传感器类型\加速计);
}
@凌驾
传感器更改时的公共无效(最终传感器事件){
if(event.sensor.getType()==sensor.TYPE\u加速计){
sum=Math.round(Math.sqrt(Math.pow(event.values[0],2)+Math.pow(event.values[1],2)+Math.pow(event.values[2],2));
//绑定到一个可能的范围
如果(总和=40.0){
max=真;
}
}
如果(最小值==true&&max==true){
SM.取消注册侦听器(此);
Toast.makeText(这个“Fall”,Toast.LENGTH_SHORT).show();
//做一些其他的事情,比如-带警报对话框的倒计时,发送短信等等。
}
}
}
我在这方面遇到了一些问题。当一个人把手机放在口袋里摔倒时,它不会给出结果,而在走路(更快)时,它有时会给出错误的结果。为了改善这一点,我应该怎么做,有人能帮我吗 这回答了你的问题吗?你可能需要调整你的阈值。@Froyo我试过了。但是,它对我不起作用。当你在写
sum>=40.0
时,你能告诉我更多关于调整阈值的信息吗?你是如何得出这个数字的?你认为更小或更高的数字会有帮助吗?也许,与y索引
相比,您可以为z索引
添加更多权重。有很多因素。没有直接的答案。