博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(android实战)实现摇一摇功能
阅读量:4958 次
发布时间:2019-06-12

本文共 1443 字,大约阅读时间需要 4 分钟。

    //感应管理器
    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);
      
    }
 

转载于:https://www.cnblogs.com/macroxu-1982/archive/2012/11/13/2768909.html

你可能感兴趣的文章
转帖 eclipse Web项目WebContent目录修改
查看>>
设计模式--4、单例模式
查看>>
博客作业06--图
查看>>
1629 B君的圆锥
查看>>
[转]我国古代求解最大公约数的方法-更相减损术
查看>>
使用Keras编写GAN的入门
查看>>
数组排序 (选择排序、冒泡排序、插入排序、希尔排序)
查看>>
musql 单表查询
查看>>
【Git】标签管理
查看>>
[HNOI2017]大佬
查看>>
『重构--改善既有代码的设计』读书笔记----Hide Delegate
查看>>
1、libgdx简单介绍
查看>>
vuex中的dispatch和commit
查看>>
mybatis实战教程二:多对一关联查询(一对多)
查看>>
NodeMCU文档中文翻译 3 构建固件
查看>>
前端学习☞jquery
查看>>
10分钟搞懂树状数组
查看>>
关于C#的静态类和静态构造函数
查看>>
C#不同窗体间通信,数据传递
查看>>
Windows10下安装Oracle 11g 64位的详细步骤
查看>>