(android实战)实现摇一摇功能
    //感应管理器
    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);
       
}
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);
}
posted on 2012-11-13 22:28 狗尾草-大数据收割基 阅读(5450) 评论(0) 收藏 举报
 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号