Android实现检测手机摇晃的监听器

Android实现检测手机摇晃的监听器,第1张

概述android检测手机摇晃监听器,实现代码如下所示:publicclassShakeListenerimplementsSensorEventListener{

androID 检测手机摇晃的监听器,实现代码如下所示:

public class ShakeListener implements SensorEventListener {  // 速度阈值,当摇晃速度达到这值后产生作用  private static final int SPEED_SHRESHolD = 3000;  // 两次检测的时间间隔  private static final int UPTATE_INTERVAL_TIME = 70;  // 传感器管理器  private SensorManager sensorManager;  // 传感器  private Sensor sensor;  // 重力感应监听器  private OnShakeListener onShakeListener;  // 上下文  private Context mContext;  // 手机上一个位置时重力感应坐标  private float lastX;  private float lastY;  private float lastZ;  // 上次检测时间  private long lastUpdateTime;  // 构造器  public ShakeListener(Context c) {   // 获得监听对象   mContext = c;   start();  }  // 开始  public voID start() {   // 获得传感器管理器   sensorManager = (SensorManager) mContext      .getSystemService(Context.SENSOR_SERVICE);   if (sensorManager != null) {     // 获得重力传感器     sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);   }   // 注册   if (sensor != null) {     sensorManager.registerListener(this,sensor,SensorManager.SENSOR_DELAY_GAME);   }  }  // 停止检测  public voID stop() {   sensorManager.unregisterListener(this);  }  // 设置重力感应监听器  public voID setonShakeListener(OnShakeListener Listener) {   onShakeListener = Listener;  }  // 重力感应器感应获得变化数据  public voID onSensorChanged(SensorEvent event) {   // 现在检测时间   long currentUpdateTime = System.currentTimeMillis();   // 两次检测的时间间隔   long timeInterval = currentUpdateTime - lastUpdateTime;   // 判断是否达到了检测时间间隔   if (timeInterval < UPTATE_INTERVAL_TIME)     return;   // 现在的时间变成last时间   lastUpdateTime = currentUpdateTime;   // 获得x,y,z坐标   float x = event.values[0];   float y = event.values[1];   float z = event.values[2];   // 获得x,z的变化值   float deltaX = x - lastX;   float deltaY = y - lastY;   float deltaZ = z - lastZ;   // 将现在的坐标变成last坐标   lastX = x;   lastY = y;   lastZ = z;   //sqrt 返回最近的双近似的平方根   double speed = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ      * deltaZ)/ timeInterval * 10000;//  MyLog.v("thelog","===========log===================");   // 达到速度阀值,发出提示   if (speed >= SPEED_SHRESHolD) {     onShakeListener.onShake();   }  }  public voID onAccuracyChanged(Sensor sensor,int accuracy) {}// 摇晃监听接口public interface OnShakeListener {  public voID onShake();}}

以上所述是小编给大家介绍的AndroID实现检测手机摇晃的监听器,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!

总结

以上是内存溢出为你收集整理的Android实现检测手机摇晃的监听器全部内容,希望文章能够帮你解决Android实现检测手机摇晃的监听器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1147360.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存