Guest User

Untitled

a guest
Sep 5th, 2013
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.66 KB | None | 0 0
  1. public class MainActivity extends Activity implements SensorEventListener{
  2.  
  3. private int mShakeValue;
  4. private final static int SENSITIVITY = 7;
  5.  
  6. private boolean mInitialized;
  7. private SensorManager mSensorManager;
  8. private Sensor mAccelerometer;
  9.  
  10. @Override
  11. public void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. mShakeValue = 0;
  14. setContentView(R.layout.activity_main);
  15. mInitialized = false;
  16. mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
  17. mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
  18. mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
  19.  
  20. final Button button = (Button) findViewById(R.id.button1);
  21. button.setOnClickListener(new View.OnClickListener() {
  22. public void onClick(View v) {
  23. // Resets Shake Value to 0
  24. TextView numberShakes = (TextView)findViewById( R.id.textView2);
  25. numberShakes.setText(Integer.toString(0));
  26. }
  27. });
  28.  
  29. }
  30.  
  31. @Override
  32. public void onConfigurationChanged(Configuration newConfig) {
  33. super.onConfigurationChanged(newConfig);
  34. TextView numberShakes = (TextView)findViewById( R.id.textView2);
  35. numberShakes.setText(numberShakes.getText());
  36. }
  37.  
  38. protected void onResume() {
  39. super.onResume();
  40. mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
  41. }
  42.  
  43. protected void onPause() {
  44. super.onPause();
  45. mSensorManager.unregisterListener(this);
  46. }
  47.  
  48. @Override
  49. public boolean onCreateOptionsMenu(Menu menu) {
  50. getMenuInflater().inflate(R.menu.activity_main, menu);
  51. return true;
  52. }
  53.  
  54. //Volume buttons are overridden
  55. @Override
  56. public boolean dispatchKeyEvent(KeyEvent event) {
  57. int keyCode = event.getKeyCode();
  58. switch (keyCode) {
  59. case KeyEvent.KEYCODE_VOLUME_UP:
  60. case KeyEvent.KEYCODE_VOLUME_DOWN:
  61. return true;
  62. default:
  63. return super.dispatchKeyEvent(event);
  64. }
  65. }
  66.  
  67. @Override
  68. public void onSensorChanged(SensorEvent event){
  69. // alpha is calculated as t / (t + dT)
  70. // with t, the low-pass filter's time-constant
  71. // and dT, the event delivery rate
  72.  
  73. TextView numberShakes = (TextView)findViewById( R.id.textView2);
  74.  
  75.  
  76. if (!mInitialized) {
  77. mInitialized = true;
  78. } else {
  79. float[] gravity = new float[3];
  80. float[] linear_acceleration = new float[3];
  81.  
  82. final float alpha = (float) 0.8;
  83.  
  84. gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
  85. gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
  86. gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];
  87.  
  88. linear_acceleration[0] = event.values[0] - gravity[0];
  89. linear_acceleration[1] = event.values[1] - gravity[1];
  90. linear_acceleration[2] = event.values[2] - gravity[2];
  91. System.out.println(linear_acceleration[0]+" , "+ linear_acceleration[1]+" , "+linear_acceleration[2]+" , ");
  92.  
  93. mShakeValue = Integer.parseInt((String) numberShakes.getText());
  94. if(/*linear_acceleration[0] > SENSITIVITY || linear_acceleration[1] > SENSITIVITY ||*/ linear_acceleration[2] > SENSITIVITY && linear_acceleration[2]>0){
  95.  
  96. numberShakes.setText(Integer.toString(++mShakeValue));
  97. System.out.println(numberShakes);
  98. }
  99. }
  100. }
  101.  
  102. @Override
  103. public void onAccuracyChanged(Sensor sensor, int accuracy){
  104.  
  105. }
  106.  
  107.  
  108.  
  109. }
Advertisement
Add Comment
Please, Sign In to add comment