java– 将传感器数据保存到android中的文件

java– 将传感器数据保存到android中的文件,第1张

概述我正在做我的项目来记录加速度计和陀螺仪传感器的数据并将其保存到SD卡中的文件中.但是我有问题,当我开始录制超过1秒时,文件中的结果只有1个数据,包括1x轴,1y轴和1z轴.理想情况下,我应该在记录文件时获得更多数据publicViewonCreateView(LayoutInflaterinflater,ViewGr

我正在做我的项目来记录加速度计和陀螺仪传感器的数据并将其保存到SD卡中的文件中.但是我有问题,当我开始录制超过1秒时,文件中的结果只有1个数据,包括1 x轴,1 y轴和1 z轴.理想情况下,我应该在记录文件时获得更多数据

  public VIEw onCreateVIEw(LayoutInflater inflater, VIEwGroup container,        Bundle savedInstanceState) {    // Todo auto-generated method stub    //return inflater.inflate(R.layout.get_data, container, false);    //get path from sdcard    sdcard = Environment.getExternalStorageDirectory().getPath();    rootVIEw = inflater.inflate(R.layout.get_data, container,false);    button start = (button) rootVIEw.findVIEwByID(R.ID.buttonstart);    button stop = (button) rootVIEw.findVIEwByID(R.ID.buttonstop);    //eksekusi saat klik button stop    stop.setonClickListener(new VIEw.OnClickListener() {        @OverrIDe        public voID onClick(VIEw v) {            rekam = false;            // Todo auto-generated method stub            //sensorManager.unregisterListener(mySensorEventListener);            //super.onStop();        }    });    //eksekusi saat klik button start    start.setonClickListener(new VIEw.OnClickListener() {        @OverrIDe        public voID onClick(VIEw v) {            rekam = true;            String nama = sdcard+"/datasensor.txt";            namafile = new file(nama);        }    });    return rootVIEw;public voID onActivityCreated(Bundle savedInstanceState) {    // Todo auto-generated method stub    super.onActivityCreated(savedInstanceState);    parent = getActivity();    sensorManager = (SensorManager) parent.getSystemService(Context.SENSOR_SERVICE);    sensor = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER).get(0);    sensorgyroscope = sensorManager.getSensorList(Sensor.TYPE_gyroscope).get(0);    koordinatX = (TextVIEw)rootVIEw.findVIEwByID(R.ID.coordinatx);    koordinatY = (TextVIEw)rootVIEw.findVIEwByID(R.ID.coordinaty);    koordinatZ = (TextVIEw)rootVIEw.findVIEwByID(R.ID.coordinatz);    koordinatrollX = (TextVIEw)rootVIEw.findVIEwByID(R.ID.coordinatrollx);    koordinatpitchY = (TextVIEw)rootVIEw.findVIEwByID(R.ID.coordinatpitchy);    koordinatyawZ = (TextVIEw)rootVIEw.findVIEwByID(R.ID.coordinatyawz);    sensorManager=(SensorManager) parent.getSystemService(Context.SENSOR_SERVICE);    //add Listener for accelerometer    sensorManager.registerListener(this,sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),SensorManager.SENSOR_DELAY_norMAL);    //add Listener for gyroscope    sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_gyroscope), SensorManager.SENSOR_DELAY_norMAL); }@OverrIDepublic voID onAccuracyChanged(Sensor sensor, int accuracy) {    // Todo auto-generated method stub}@OverrIDepublic voID onSensorChanged(SensorEvent event) {    // Todo auto-generated method stub    if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER)    {        //assign directions accelometer        float x = event.values[0];        float y = event.values[1];        float z = event.values[2];        koordinatX.setText("X: "+x);        koordinatY.setText("Y: "+y);        koordinatZ.setText("Z: "+z);        if(rekam==true)        {            try            {                BuffereDWriter out = new BuffereDWriter(new fileWriter(namafile));                out.write(float.toString(event.values[0]) + float.toString(event.values[1]) + float.toString(event.values[2]) );                out.close();            }            catch (IOException e)            {                System.out.println("Exception");            }        }    }    if(event.sensor.getType()==Sensor.TYPE_gyroscope)    {                           float roolX = event.values[0];        float pitchY = event.values[1];        float yawZ = event.values[2];        koordinatrollX.setText("OrIEntation X (Roll) :" + float.toString(event.values[0]));        koordinatpitchY.setText("OrIEntation Y (Pitch) :" + float.toString(event.values[1]));        koordinatyawZ.setText("OrIEntation Z (Yaw):" + float.toString(event.values[2]));        if(rekam==true)        {            try            {            BuffereDWriter out = new BuffereDWriter(new fileWriter(namafile));            out.write(float.toString(event.values[0]) + float.toString(event.values[1]) + float.toString(event.values[2]) );            out.close();            }            catch (IOException e)            {                System.out.println("Exception");            }        }}}}

解决方法:

而不是buf.write(),尝试buf.append()

当你使用buf.write()时,它会附加新的传感器读数而不是写入

总结

以上是内存溢出为你收集整理的java – 将传感器数据保存到android中的文件全部内容,希望文章能够帮你解决java – 将传感器数据保存到android中的文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1117764.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存