(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);
      
    }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值