您的位置:首页 > 移动开发 > Android开发

(android实战)实现摇一摇功能

2012-11-13 22:28 375 查看
//感应管理器
private SensorManager mSensorManager;

//震动器
private Vibrator vibrator;

//活动管理器
ActivityManager activityManager ;

//1获得硬件信息
mSensorManager = (SensorManager) getSystemService(SENSOR_

SERVICE);
vibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);
activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);

//2 判断当前手机是否带加速度感应器,如果不带,直接结束,不启动服务
List<Sensor> sensors = mSensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER);
if(sensors!=null)
if(sensors.size()==0)

return;

//3生成感应侦听事件
SensorEventListener sensorelistener=new SensorEventListener(){
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {

// TODO Auto-generated method stub

}
//感应器发生改变
@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub

int sensorType = event.sensor.getType();

//读取摇一摇敏感值
int shakeSenseValue=Integer.parseInt(getResources().getString(R.string.shakeSenseValue)); ;

//values[0]:X轴,values[1]:Y轴,values[2]:Z轴
float[] values = event.values;

if(sensorType == Sensor.TYPE_ACCELEROMETER){
if((Math.abs(values[0])>shakeSenseValue||Math.abs(values[1])>shakeSenseValue||Math.abs(values[2])>shakeSenseValue)){

//触发事件,执行打开应用行为
vibrator.vibrate(500);
}
}
}

};

//4注册侦听事件
mSensorManager.registerListener(sensorelistener,
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_NORMAL);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: