全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

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


# android  # 手机摇晃监听器  # Android编程自定义View时添加自己的监听器示例  # Android中ScrollView实现滑动距离监听器的方法  # Android编程之监听器用法实例分析  # Android编程之监听器的实现方法  # Android实现静态广播监听器的方法  # android Animation监听器AnimationListener的使用方法)  # Android控件系列之Button以及Android监听器使用介绍  # android监听器实例代码  # 两次  # 管理器  # 小编  # 在此  # 感应器  # 达到了  # 给大家  # 所示  # 所述  # 给我留言  # 感谢大家  # 判断是否  # 疑问请  # 有任何  # Sensor 


相关文章: 建站之星安装后如何配置SEO及设计样式?  宝塔建站后网页无法访问如何解决?  如何通过主机屋免费建站教程十分钟搭建网站?  常州企业网站制作公司,全国继续教育网怎么登录?  清除minerd进程的简单方法  历史网站制作软件,华为如何找回被删除的网站?  高端网站建设与定制开发一站式解决方案 中企动力  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  学校为何禁止电信移动建设网站?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?  高防服务器租用指南:配置选择与快速部署攻略  如何快速建站并高效导出源代码?  如何通过VPS建站无需域名直接访问?  建站DNS解析失败?如何正确配置域名服务器?  南京网站制作费用,南京远驱官方网站?  公司网站设计制作厂家,怎么创建自己的一个网站?  制作企业网站建设方案,怎样建设一个公司网站?  c# Task.ConfigureAwait(true) 在什么场景下是必须的  香港服务器WordPress建站指南:SEO优化与高效部署策略  建站之星代理如何优化在线客服效率?  建站主机与服务器功能差异如何区分?  建站之星安装需要哪些步骤及注意事项?  如何在阿里云虚拟主机上快速搭建个人网站?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  建站主机无法访问?如何排查域名与服务器问题  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  建站之星后台管理:高效配置与模板优化提升用户体验  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  如何破解联通资金短缺导致的基站建设难题?  如何通过多用户协作模板快速搭建高效企业网站?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  制作证书网站有哪些,全国城建培训中心证书查询官网?  怎么将XML数据可视化 D3.js加载XML  广州营销型建站服务商推荐:技术优势与SEO优化解析  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  如何用低价快速搭建高质量网站?  定制建站哪家更专业可靠?推荐榜单揭晓  如何通过万网虚拟主机快速搭建网站?  网站制作服务平台,有什么网站可以发布本地服务信息?  如何在万网自助建站中设置域名及备案?  山东云建站价格为何差异显著?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  韩国服务器如何优化跨境访问实现高效连接?  如何通过.red域名打造高辨识度品牌网站?  黑客如何利用漏洞与弱口令入侵网站服务器?  建站之星与建站宝盒如何选择最佳方案?  制作网站怎么制作,*游戏网站怎么搭建? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。