標籤:感應器 手機 android
下面我們來看一下搖一搖功能的類比實現,我們是基於手機加速度感應器實現該功能,實現方法比較簡單。
MainActivity.java:
MainActivity.java:package com.location.activity;import android.app.Activity;import android.content.Context;import android.hardware.Sensor;import android.hardware.SensorEvent;import android.hardware.SensorEventListener;import android.hardware.SensorManager;import android.os.Bundle;import android.widget.Toast;public class MainActivity extends Activity { private SensorManager sensorManager; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);// 擷取服務 Sensor sensor = sensorManager .getDefaultSensor(Sensor.TYPE_ACCELEROMETER);// 感應器種類-加速度感應器 sensorManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_NORMAL); } @Override protected void onDestroy() { if (sensorManager != null) { sensorManager.unregisterListener(listener); } super.onDestroy(); } /** * 感應器觸發 */ private SensorEventListener listener = new SensorEventListener() { public void onSensorChanged(SensorEvent event) { float xValue = Math.abs(event.values[0]);// X軸方向加速度 float yValue = Math.abs(event.values[1]);// Y軸方向加速度 float zValue = Math.abs(event.values[2]);// Z軸方向加速度 if (xValue > 20 || yValue > 20 || zValue > 20) {// 有任何一個方向的加速度值大於20,即觸發 /** * 這裡我們只是以Toast為例,您可以按照自己的需求在此寫入各種方法; */ Toast.makeText(MainActivity.this, "您啟動了搖一搖功能!", Toast.LENGTH_LONG).show(); } } public void onAccuracyChanged(Sensor sensor, int accuracy) { } };}
運行執行個體如下:
總結:
1.getSystemService(Context.SENSOR_SERVICE);// 擷取SensorManage對象;
2.sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);// 擷取感應器種類
3.本文只是將搖一搖觸發為Toast,有需要的可以直接修改方法即可。
喜歡的朋友關注我哦!多謝支援!
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
Android實戰簡易教程-第三十一槍(基於加速度感應器的搖一搖功能執行個體)