【问题标题】:Saving gyroscope data while capturing image捕获图像时保存陀螺仪数据
【发布时间】:2013-05-30 18:55:16
【问题描述】:

我对 Android 很陌生,目前正在做一个小相机应用程序,它可以保存从相机快门打开到关闭时的陀螺仪/加速度计数据样本。基本上,我在图像捕获按钮侦听器中初始化陀螺传感器(使用camera.takePicture())并在ShutterCallback 内停止传感器。这是我的问题。每次我得到一个新样本时,我应该将记录的传感器数据写入 .txt 还是有一些聪明的方法?

【问题讨论】:

    标签: android camera sensors


    【解决方案1】:

    我编写了一个应用程序,以最快的速度记录传感器数据 (SensorManager.SENSOR_DELAY_FASTEST)。我担心在执行其他任务时不断写入文本文件会导致性能问题,因此我创建了一个AsyncTask 类在后台执行此操作。以下代码对我来说很好,即使应用程序运行了几个小时。在您的情况下,由于您只想记录一小段时间,另一个想法是将日志信息保存在内存中的集合对象中(例如ArrayList<>),然后将所有内容记录在ShutterCallback 上。

    public void LogSensor(long SystemTime, int SensorType, float[] SensorValues) {
        String LogString = Integer.toString(SensorType);
        for(int i=0; i<SensorValues.length; i++) LogString += "," + SensorValues[i];
        (new LogSensor_in_background()).execute(SystemTime+","+LogString);
    }
    
    private class LogSensor_in_background extends AsyncTask<String, Void, Void> {
        @Override
        protected Void doInBackground(String... LogStrings) {    
        // do logging
        return null; }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-16
      • 1970-01-01
      • 1970-01-01
      • 2014-08-13
      相关资源
      最近更新 更多