Android 加速度传感器的使用详解
Posted 路宇
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 加速度传感器的使用详解相关的知识,希望对你有一定的参考价值。
前言: 利用加速度传感器,实现微信摇一摇的功能。
直接看AcceleratedSensorActivity类中的代码,具体注释已经在代码中给出:
public class AcceleratedSensorActivity extends AppCompatActivity implements SensorEventListener
//定义传感器管理器
private SensorManager sensorManager;
//定义振动器
private Vibrator vibrator;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_accelerated_sensor);
//获取传感器管理器对象
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
//获取振动器
vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);
@Override
protected void onResume()
super.onResume();
//为加速度传感器注册监听器
sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
@Override
public void onSensorChanged(SensorEvent event) //传感器的值发生变化时,触发
//获取传感器类型
int sensorType = event.sensor.getType();
if (sensorType == Sensor.TYPE_ACCELEROMETER)
//获取传感器的值
float[] values = event.values;
//values[1] 指的是x轴方向
//values[2] 指的是y轴方向
//values[3] 指的是z轴方向
if (values[0] > 15 || values[1] > 15 || values[2] > 15)
Toast.makeText(this, "摇一摇!", Toast.LENGTH_SHORT).show();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("发生摇一摇了").show();
//设置振动器的频率
vibrator.vibrate(500);
//取消注册的监听器
sensorManager.unregisterListener(this);
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) //传感器的精度发生变化时,触发
最后一定要在清单文件中加入控制设备振动的权限:
<uses-permission android:name="android.permission.VIBRATE" />
具体效果就不演示了,以上就是加速度传感器的简单使用!
以上是关于Android 加速度传感器的使用详解的主要内容,如果未能解决你的问题,请参考以下文章