您的位置:首页 > 其它

安卓加速传感器开发

2014-01-13 20:44 405 查看
package com.example.loverschoise;

import android.app.Activity;
import android.app.Service;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.os.Vibrator;
import android.widget.Toast;

public class MainActivity extends Activity implements SensorEventListener{

private SensorManager mSensorManager;
private Vibrator mVibrator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//获取传感器管理服务
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
//震动
mVibrator = (Vibrator)getSystemService(Service.VIBRATOR_SERVICE);
}

@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
//注册加速度传感器
mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_NORMAL);
}

@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
mSensorManager.unregisterListener(this);
}

@Override
public void onAccuracyChanged(Sensor arg0, int arg1) {
// 加速度精度发生变化时执行

}
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
int sensorType = event.sensor.getType();
float[] values = event.values;
if (sensorType == Sensor.TYPE_ACCELEROMETER) {
if (Math.abs(values[0]) > 20 || Math.abs(values[1]) > 20 || Math.abs(values[2]) > 20) {
Toast.makeText(getApplicationContext(), "加速度变化", 500).show();
mVibrator.vibrate(500);
}
}

}

}

注意要加上权限:

<uses-permission android:name="android.permission.VIBRATE"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息