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,y,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实现检测手机摇晃的监听器,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

更多相关文章

  1. android 实现摇一摇功能
  2. Android适用于IM通知音频的Vibrator
  3. Android:SeekBar和RatingBar控件
  4. Android日期时间格式国际化
  5. Android(安卓)HTTP通讯
  6. Android:时间控件
  7. 共享一个Ext版的Toast·就是可以自动消失的信息提示
  8. Android(安卓)获取网络时间
  9. 【Android】几种常见广播监听器(Wifi,亮灭屏,Home键,短信)总结

随机推荐

  1. 比特币-架构原理
  2. 单点登录之ajax跨域实现
  3. Quartz定时任务框架
  4. 关于api接口以及页面数据通信域名,缓存cdn
  5. 坚果云亿方云哪个更好用?
  6. redis-cluster集群总结
  7. 业务数据分析
  8. pyinstaller打包总结
  9. aipai服务架构
  10. 量化交易