访问Android位置或加速计数据日志

时间:2015-05-31 03:53:10

标签: android accelerometer

周二晚上我发生了一场车祸,希望有人可以提供帮助。

我想知道是否有可能从我的手机收集位置或加速度计数据,以帮助查明影响时间,这可能与交通灯数据或来自附近摄像机或其他数据的视频一起使用。

对稍微偏离主题的请求表示道歉。我的一些开发者朋友推荐这里发布。

1 个答案:

答案 0 :(得分:0)

来自你的问题,是的,可以通过

来完成
  1. 让加速度计不时得到它的价值,因为当你的车辆崩溃时,力量会给出非常高的结果

  2. 从我的角度来看,你需要使用罗盘传感器来帮助它正确计算,(加上GPS传感器,它对计算你当前的速度有很大帮助)

  3. 最后一个,你需要研究一下车辆撞坏的方式,当它撞击力的时候会前后退出,所以很多实验或好的研究都会对你有很大的帮助

  4. 用于启动加速度计,(没有多少移动设备有此传感器)

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        // to get accelerometer censor
        senSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        senAccelerometer = senSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
        senSensorManager.registerListener(this, senAccelerometer , SensorManager.SENSOR_DELAY_NORMAL);
    }
    
    @Override
    public void onSensorChanged(SensorEvent sensorEvent) {
    Sensor mySensor = sensorEvent.sensor;
    
    if (mySensor.getType() == Sensor.TYPE_ACCELEROMETER) {
        float x = sensorEvent.values[0];
        float y = sensorEvent.values[1];
        float z = sensorEvent.values[2];
    
        long curTime = System.currentTimeMillis();
    
        if ((curTime - lastUpdate) > 100) {
            long diffTime = (curTime - lastUpdate);
            lastUpdate = curTime;
    
            float speed = Math.abs(x + y + z - last_x - last_y - last_z)/ diffTime * 10000;
    
            if (speed > MIGHT_BE_CRASHING_THRESHOLD) {
                // do something
            }
    
            last_x = x;
            last_y = y;
            last_z = z;
        }
    }
    }
    
    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
    
    }