package com.example.sensortest; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends ActionBarActivity implements SensorEventListener{ private TextView resulFromAccelerometertTextView; private SensorManager mSensorManager; private Sensor mSensor; private static final int factor = 10; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViews(); setUpAcceleratorSensor(); } @Override protected void onResume() { super.onResume(); setUpAcceleratorSensor(); mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onPause() { super.onPause(); mSensorManager.unregisterListener(this); } private void findViews(){ resulFromAccelerometertTextView = (TextView) findViewById(R.id.resulFromAccelerometertTextView); } private void setUpAcceleratorSensor(){ mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); if((mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER)) != null); else Toast.makeText(this, "No Sensor Device Exist", Toast.LENGTH_LONG).show(); } @Override public void onSensorChanged(SensorEvent event) { Sensor mySensor = event.sensor; if (mySensor.getType() == Sensor.TYPE_ACCELEROMETER) { if(event.values[0]/factor > 1 || event.values[1]/factor > 1 || event.values[2]/factor > 1){ resulFromAccelerometertTextView.setText("Detect your montion\n"); resulFromAccelerometertTextView.append("X axis acceleration:" + event.values[0] + "\n"); resulFromAccelerometertTextView.append("Y axis acceleration:" + event.values[1] + "\n"); resulFromAccelerometertTextView.append("Z axis acceleration:" + event.values[2] + "\n"); } } } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { } }
App的執行結果如下圖Fig. 1所示:
Fig. 1. 程式執行結果 |
沒有留言:
張貼留言