如何设置间隔以从加速度计注册我的数据 - 运动传感器

问题描述

如何设置间隔以从 Accelerometer 注册我的数据,例如 1 秒从 1 个数据到另一个。 我尝试在这里更改延迟 sensorManager.registerListener(sensorEventListener,sensor,SensorManager.SENSOR_DELAY_norMAL);

但结果是一样的

这是我在 MainActivity 中的部分


  accelerometer.setListener(new Accelerometer.Listener() {
               //on translation method of accelerometer
               public void onTranslation(float tx,float ty,float ts){
                   SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd 'at' HH:mm:ss");
                   String currentDateandTime = sdf.format(new Date());
                   tmp1[0] += "Accelerometer: X: " + (int) tx + " Y: " + (int) ty + " Z: " + (int) ts + "   Orario:  " + currentDateandTime + "\n";
                   Log.d("",tmp1[0]);

                   FileOutputStream fos = null;
                   try {
                       fos = new FileOutputStream(myExternalFile1);
                       fos.write(tmp1[0].getBytes());
                   } catch (FileNotFoundException e) {
                       e.printstacktrace();
                   } catch (IOException e) {
                       e.printstacktrace();
                   }
               }

           }

这是我的课程 Java Acceloremter

package com.example.textanddrive;

import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;

import java.io.FileNotFoundException;

public class Accelerometer {

    // create an interface with one method
    public interface Listener {
        // create method with all 3
        // axis translation as argument
        void onTranslation(float tx,float ts) throws FileNotFoundException;
    }

    // create an instance
    public Listener listener;

    // method to set the instance
    public void setListener(Listener l) {
        listener = l;
    }

    private SensorManager sensorManager;
    private Sensor sensor;
    private SensorEventListener sensorEventListener;

    // create constructor with
    // context as argument
    public Accelerometer(Context context) {
        // create instance of sensor manager
        sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);

        // create instance of sensor
        // with type linear acceleration
        sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LINEAR_acceleration);

        // create the sensor listener
        sensorEventListener = new SensorEventListener() {
            // this method is called when the
            // device's position changes
            @Override
            public void onSensorChanged(SensorEvent sensorEvent) {
                // check if listener is
                // different from null
                if (listener != null) {
                    // pass the three floats in listener on translation of axis
                    try {
                        listener.onTranslation(sensorEvent.values[0],sensorEvent.values[1],sensorEvent.values[2]);
                    } catch (FileNotFoundException e) {
                        e.printstacktrace();
                    }
                }
            }

            @Override
            public void onAccuracyChanged(Sensor sensor,int i) {

            }
        };
    }

    // create register method
    // for sensor notifications
    public void register() {
        // call sensor manger's register listener
        // and pass the required arguments
        sensorManager.registerListener(sensorEventListener,SensorManager.SENSOR_DELAY_norMAL);
    }

    // create method to unregister
    // from sensor notifications
    public void unregister() {
        // call sensor manger's unregister listener
        // and pass the required arguments
        sensorManager.unregisterListener(sensorEventListener);
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)