问题描述
如何设置间隔以从 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 (将#修改为@)