Guest User

Untitled

a guest
Aug 6th, 2020
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.86 KB | None | 0 0
  1. package com.example.inzynierkaadamh;
  2.  
  3. import androidx.appcompat.app.AppCompatActivity;
  4. import android.content.Context;
  5. import android.hardware.Sensor;
  6. import android.hardware.SensorEvent;
  7. import android.hardware.SensorEventListener2;
  8. import android.hardware.SensorManager;
  9. import android.os.Bundle;
  10. import android.view.MotionEvent;
  11. import android.view.View;
  12. import android.widget.Button;
  13.  
  14. import java.io.File;
  15. import java.io.FileWriter;
  16. import java.io.IOException;
  17.  
  18. public class MainActivity3 extends AppCompatActivity implements SensorEventListener2 {
  19. SensorManager manager;
  20. Button buttonStart;
  21. Button buttonStop;
  22. boolean isRunning;
  23. final String TAG = "SensorLog";
  24. FileWriter writer;
  25.  
  26.  
  27. @Override
  28. protected void onCreate(Bundle savedInstanceState) {
  29. super.onCreate(savedInstanceState);
  30. setContentView(R.layout.activity_main3);
  31.  
  32. isRunning = false;
  33.  
  34. manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
  35. buttonStart = (Button)findViewById(R.id.buttonStart);
  36. buttonStop = (Button)findViewById(R.id.buttonStop);
  37. buttonStart.setOnTouchListener(new View.OnTouchListener() {
  38. @Override
  39. public boolean onTouch(View view, MotionEvent motionEvent) {
  40. buttonStart.setEnabled(false);
  41. buttonStop.setEnabled(true);
  42. try {
  43. writer = new FileWriter(new File(getStorageDir(), "sensors_" + System.currentTimeMillis() + ".csv"));
  44. } catch (IOException e) {
  45. e.printStackTrace();
  46. }
  47.  
  48. manager.registerListener(MainActivity3.this, manager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 0);
  49.  
  50. manager.registerListener(MainActivity3.this, manager.getDefaultSensor(Sensor.TYPE_GYROSCOPE), 0);
  51. isRunning = true;
  52. return true;
  53. }
  54. });
  55.  
  56. buttonStop.setOnTouchListener(new View.OnTouchListener() {
  57. @Override
  58. public boolean onTouch(View view, MotionEvent motionEvent) {
  59. buttonStart.setEnabled(true);
  60. buttonStop.setEnabled(false);
  61. isRunning = false;
  62. manager.flush(MainActivity3.this);
  63. manager.unregisterListener(MainActivity3.this);
  64. try {
  65. writer.close();
  66. } catch (IOException e) {
  67. e.printStackTrace();
  68. }
  69. return true;
  70. }
  71. });
  72. }
  73.  
  74. private String getStorageDir() {
  75. return this.getExternalFilesDir(null).getAbsolutePath();
  76. }
  77.  
  78. @Override
  79. public void onFlushCompleted(Sensor sensor) {
  80.  
  81. }
  82.  
  83. @Override
  84. public void onSensorChanged(SensorEvent evt) {
  85. if(isRunning) {
  86. try {
  87. switch(evt.sensor.getType()) {
  88. case Sensor.TYPE_ACCELEROMETER:
  89. writer.write(String.format("%d; ACC; %f; %f; %f; %f; %f; %f\n", evt.timestamp, evt.values[0], evt.values[1], evt.values[2], 0.f, 0.f, 0.f));
  90. break;
  91. case Sensor.TYPE_LINEAR_ACCELERATION:
  92. writer.write(String.format("%d; LIN_acc; %f; %f; %f; %f; %f; %f\n", evt.timestamp, evt.values[3], evt.values[4], evt.values[5], 0.f, 0.f, 0.f));
  93. break;
  94. case Sensor.TYPE_GYROSCOPE:
  95. writer.write(String.format("%d; GYRO; %f; %f; %f; %f; %f; %f\n", evt.timestamp, evt.values[0], evt.values[1], evt.values[2], 0.f, 0.f, 0.f));
  96. break;
  97.  
  98. }
  99. } catch (IOException e) {
  100. e.printStackTrace();
  101. }
  102. }
  103. }
  104.  
  105. @Override
  106. public void onAccuracyChanged(Sensor sensor, int i) {
  107.  
  108. }
  109.  
  110. }
Advertisement
Add Comment
Please, Sign In to add comment