如何在摇动设备时刷新应用程序?

2024-01-11

我需要添加一个摇动功能来刷新我的 Android 应用程序。

我找到的所有文档都涉及实施SensorListener,但 Eclipse 告诉我它已被弃用并建议SensorEventListener.

任何人都可以指导我如何创建这个shake controller?


这是一个示例代码。 将其放入您的活动类中:

  /* put this into your activity class */
  private SensorManager mSensorManager;
  private float mAccel; // acceleration apart from gravity
  private float mAccelCurrent; // current acceleration including gravity
  private float mAccelLast; // last acceleration including gravity

  private final SensorEventListener mSensorListener = new SensorEventListener() {

    public void onSensorChanged(SensorEvent se) {
      float x = se.values[0];
      float y = se.values[1];
      float z = se.values[2];
      mAccelLast = mAccelCurrent;
      mAccelCurrent = (float) Math.sqrt((double) (x*x + y*y + z*z));
      float delta = mAccelCurrent - mAccelLast;
      mAccel = mAccel * 0.9f + delta; // perform low-cut filter
    }

    public void onAccuracyChanged(Sensor sensor, int accuracy) {
    }
  };

  @Override
  protected void onResume() {
    super.onResume();
    mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
  }

  @Override
  protected void onPause() {
    mSensorManager.unregisterListener(mSensorListener);
    super.onPause();
  }

并将其添加到您的 onCreate 方法中:

    /* do this in onCreate */
    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_NORMAL);
    mAccel = 0.00f;
    mAccelCurrent = SensorManager.GRAVITY_EARTH;
    mAccelLast = SensorManager.GRAVITY_EARTH;

然后,您可以在应用程序中的任何位置询问“mAccel”当前加速度,该加速度与轴无关,并且不受重力等静态加速度的影响。 大约是。如果没有移动,则为 0;如果设备摇晃,则可以说 >2。

根据评论 - 测试一下:

if (mAccel > 12) {
    Toast toast = Toast.makeText(getApplicationContext(), "Device has shaken.", Toast.LENGTH_LONG);
    toast.show();
}

Notes:

应停用加速度计onPause并激活onResume以节省资源(CPU、电池)。 该代码假设我们位于地球上;-) 并初始化地球重力加速度。否则,当应用程序启动并从自由落体“撞击”地面时,您会感到强烈的“震动”。然而,由于低切滤波器,代码会适应引力,一旦初始化,它也可以在其他行星或自由空间中工作。 (你永远不知道你的应用程序将使用多长时间......;-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在摇动设备时刷新应用程序? 的相关文章

  • Android 中的 Fragment-Fragment 通信

    我在Android编程方面处于初级水平 所以我需要你真诚的帮助 请任何人帮助我 我正在尝试使用片段构建滑动用户界面 所以我真正的疑问是 我有一个Fragment say FragmentA 它有一个TextView and Button在其
  • 使用 Fragment 在工具栏中实现 SearchView

    当前情况 我的应用程序主页由导航抽屉组成 因此我将视图作为片段加载 我的工具栏中也有搜索图标 我在中实现了它menu xml 下一步我实施了SearchView通过以下问题的答案来获取搜索图标在工具栏中实现搜索 https stackove
  • 在 gradle 中,我应该排除分支下的所有依赖项还是只排除根就足够了?

    我已将以下自定义任务添加到我的build gradlefile 为了打印出依赖项的依赖项 This part is useful for finding conflict resolution s between dependencies
  • 吉夫伦致命信号11

    我正在尝试使用一些本机代码来创建 Gif 我使用绘画绘制图像 创建一些笔画 单击 保存 绘制的图像将保存为 JPG 格式 当我单击 创建 Gif 时 它会获取所有图像并开始创建 gif 这是当我收到致命信号 11 并且应用程序重新启动时 我
  • 为什么反射会减慢Android手机的速度

    我多次读到反射会降低手机性能 这有多真实 例如 在我的例子中 我从 Web 服务获取一些参数 这些参数与我在 Android 应用程序中的类的参数同名 所以我只是使用java字段和反射设置这些参数的值 它似乎并没有降低性能 有人可以向我解释
  • 如果使用grifika的ContinualCaptureActivity中的预览方式,相机预览的视野会更小

    我们知道 当相机预览比例设置为时 在相同距离下我们会得到更大的预览视野4 3代替16 9 具体如下 Android Camera API 奇怪的缩放效果 https stackoverflow com questions 20664628
  • Ionic 2 RC0 和 Angular 2 最新的 Android 构建错误(ngc:错误:静态解析符号值时遇到错误)

    当我使用构建android时出现错误ionic build android命令 ngc 错误 静态解析符号值时遇到错误 引用本地 非导出 符号 字典 考虑导出符号 原始 ts文件中的位置14 8 解析符号TRANSLATION PROVID
  • HMS 核心地图套件在我的 Android 应用程序上根本无法工作

    我正在尝试在我的应用程序中使用华为 HMS 地图套件 我对整体地图很陌生 无论是来自谷歌还是华为 我按照文档中的教程以及华为提供的代码实验室中的说明进行操作 并将我的代码在一起 但是当我运行地图活动时 什么也没有出现 我得到的只是一个空白活
  • 将 java 中的 byte[] 转换为 C++ 中的 unsigned char* 的正确方法,反之亦然?

    我是 C 和 JNI 的新手 我尝试找到一种正确的方法 通过使用 JNI 将 java 中的 byte 转换为 C 中的 unsigned char 反之亦然 我正在安卓上工作 在谷歌和SO中寻找解决方案后 我还没有找到将java中的byt
  • 在新的 intel x86 android 模拟器中访问 google api

    我只是尝试在新的 x86 android 模拟器中运行我公司的应用程序 但是我们的应用程序依赖于 google 地图 API 而这在 google 随 android sdk 版本 17 提供的 x86 系统映像中不可用 我的直觉告诉我答案
  • MIUI 权限被拒绝活动 KeyguardLocked

    当应用程序处于后台且屏幕被锁定时 我无法启动活动 没有异常或警告 只是不调用 onCreate 我一直在与这个问题作斗争 我想我终于找到了它的根源 日志中有一行 D com android server am ExtraActivityMa
  • 控制 OverlayItem 大小

    我正在构建一个在单个 ItemizedOverlay 中包含几十个 OverlayItems 的地图 我的地图设计为可以非常近距离地查看 大约缩放级别 18 并且 OverlayItems 彼此非常接近 地图放大时看起来不错 但是 如果用户
  • 当 minifyEnabled 为 true 时 Android 应用程序崩溃

    我正在使用多模块应用程序 并且该应用程序崩溃时minifyEnabled true in the installed模块的build gradle 以下是从游戏控制台检索到的反混淆堆栈跟踪 FATAL EXCEPTION Controlle
  • 如何将 Android 添加到 Phonegap 平台版本 3

    经过大量挖掘 我相信这个问题 https stackoverflow com questions 18423444 phonegap 3 doesnt work with andriod studio与我没有添加任何用于构建phonegap
  • Android 中的 OpenGL 缩小

    我正在使用 3D 对象并渲染它并通过扩展 GLSurfaceView 实现渲染器来显示它 问题是如何通过捏合和捏合进行缩小 下面是我的班级 package com example objLoader import java nio Byte
  • 如何通过 Android 按钮单击运行单独的应用程序

    我尝试在 Android 应用程序中添加两个按钮 以从单独的两个应用程序订单系统和库存系统中选择一个应用程序 如图所示 我已将这两个应用程序实现为两个单独的 Android 项目 当我尝试运行此应用程序时 它会出现直到正确选择窗口 但是当按
  • ECDH使用Android KeyStore生成私钥

    我正在尝试使用 Android KeyStore Provider 生成的私有文件在 Android 中实现 ECDH public byte ecdh PublicKey otherPubKey throws Exception try
  • Android-dispatchTouchEvent 给了我一个 StackOverflowError

    这里我有一个带有 setOnTouchListener 的 ViewFlipper 它工作得很好 然后我膨胀 ReLayNewsItem 然后将其添加到 ViewFlipper 现在我希望 WebView web 监听触摸事件并将它们传递给
  • 检查应用程序是否在 Android Market 上可用

    给定 Android 应用程序 ID 包名称 如何以编程方式检查该应用程序是否在 Android Market 上可用 例如 com rovio angrybirds 可用 而 com random app ibuilt 不可用 我计划从
  • 从文件路径显示图像视图?

    我需要仅使用文件名而不是资源 ID 来显示图像 ImageView imgView new ImageView this imgView setBackgroundResource R drawable img1 我在可绘制文件夹中有图像

随机推荐

  • 从 Django 视图启动 Scrapy

    我使用Scrapy的经验有限 每次使用它总是通过终端的命令 如何从 django 模板获取表单数据 要抓取的 url 以与 scrapy 通信以开始抓取 到目前为止 我只想到从django的视图中获取表单返回的数据 然后尝试进入scrapy
  • require.js +backbone.js:如何构建具有初始化功能的模块?

    我有一个包含三个页面的应用程序 它们是单页界面 这些页面具有相似但不相同的功能 所以我想要有提供通用功能的 javascript 模块 然后每个页面可以定制 覆盖部分通用功能 我使用的是backbone js 所以我要做的是 加载包含常见模
  • 使用Python登录Google帐户进入网站[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在制作一个网站 该网站制作分组中人数的图表 来自 www codecamy com 为了实现这一目标 我制定了一个计划 我将有一个服务
  • HTTP 状态代码 200,但页面未加载 Node.js Socket.io -- Node.js Socket.io 教程、Daniel Nill、fs.readFile()、socket.html

    了解 node js 和 socket io 并进行操作Daniel Nill 的本教程 http www danielnill com blog nodejs tutorial with socketio 服务器启动没有问题 但是 当我导
  • 如何从codeigniter中的视图调用控制器函数?

    使用 codeigniter 我有一个控制器 如下所示
  • Android AccessibilityNodeInfo刷新()和回收()

    我已经阅读了 android 文档https developer android com reference android view accessibility AccessibilityNodeInfo html https devel
  • 当我在 OnChange 事件中调用 Delete 时,为什么会出现 RichEdit 行插入错误?

    我已经用谷歌搜索并检查了很多地方来寻找解决方案 但我发现的所有情况都不同或涉及比简单地添加或删除行更高级的东西 基本上 我想进行一种滚动丰富的编辑 替代方法是将插入符号移动到底部 我已经找到了解决方案 我正在向其中添加行并检查Lines C
  • 如何将变量/参数写入标准输出?

    我正在尝试调试我的第一个Bicep https learn microsoft com en us azure azure resource manager bicep overview模板 如何将变量或参数值写入标准输出 就像是 var
  • Spark 将每个操作执行两次

    我创建了一个简单的 Java 应用程序 它使用 Apache Spark 从 Cassandra 检索数据 对其进行一些转换并将其保存在另一个 Cassandra 表中 我正在使用 Apache Spark 1 4 1 它配置为独立集群模式
  • 将 ATL 项目从 vs2010 升级到 vs2013 时出现编译错误 [重复]

    这个问题在这里已经有答案了 当在 Visual Studio 2013 构建中包含来自 Microsoft ATL 库的 atlwin h 时 可能会导致出现大量有关未定义元素的编译器错误 HMONITOR is not defined 使
  • Xcode Instruments 在设备上运行时无法拍摄泄漏快照

    最近 在设备上运行应用程序时 我无法使用 Instruments 测试泄漏 仪器将尝试拍摄快照 但状态将冻结在 正在分析过程 起初我以为只是需要时间 但我等了20多分钟却没有运气 但它在模拟器上仍然运行良好 到目前为止我已经尝试过 使用具有
  • 收到构建或发布失败的通知

    我已经将 Azure 管道与团队松弛通道集成在一起 这很好 它告诉我们构建何时完成并发布部署 但真正糟糕的是 它不会报告构建或发布失败的时间 这可以说是更重要的信息 我进入设置尝试查看是否有任何事件 但似乎答案是否定的 我还想看看是否可以用
  • cygwin下使用GCC生成的可执行文件

    我正在使用 Cygwin 并已将 GCC 版本 4 3 4 20090804 release 1 安装为 Cygwin 软件包 当我在 Cygwin shell 下使用 GCC 构建 C 代码时 生成的可执行输出文件是类型为可执行文件 PE
  • 在运行时更改 spring-cloud-stream 实例索引/计数

    在 spring cloud stream 中 有没有一种方法可以在不重新启动应用程序的情况下更改应用程序的实例计数和实例索引 另外 是否有任何推荐的方法来自动填充这些值 在微服务世界中 这似乎非常困难 因为服务一直在启动和停止 在 spr
  • 在 python 中调试 argparse

    我可以知道调试 argpars 函数的最佳实践是什么 假设我有一个 py 文件 test file py 其中包含以下几行 Script start import argparse import os parser argparse Arg
  • Vue.js 单击时切换类

    如何在 vue js 中切换类 我有以下内容 th class initial span class wkday M span th new Vue el my container data methods myFilter functio
  • Grails:获取控制器内资产的本地存储路径

    我需要提取资产文件夹物理路径 以便从控制器写入文件 有什么简单的方法可以从控制器实现文件持久性吗 完整示例 class ExampleService def assetResourceLocator def someMethod Resou
  • UISwitch,Mac 上有类似的东西吗?

    我相信你们大多数人都熟悉UISwitch on iOS 他们是否有任何现有项目试图实施类似的东西UISwitch适用于 macOS 和 AppKit 如果没有 从哪里开始制作呢 我经常看到它们并且能想到很多用途 我认为你应该使用NSChec
  • 如何在颤振中显示带有顶部和底部渐变阴影的图像?

    我正在研究颤振以显示具有顶部和底部渐变叠加的图像 图像顶部和底部的某些部分应显示阴影 就像被其他颜色 如灰色 覆盖一样 请找到我画的附图供参考 我已将 Container 与 CachedNetworkImage 一起使用 并尝试使用 Bo
  • 如何在摇动设备时刷新应用程序?

    我需要添加一个摇动功能来刷新我的 Android 应用程序 我找到的所有文档都涉及实施SensorListener 但 Eclipse 告诉我它已被弃用并建议SensorEventListener 任何人都可以指导我如何创建这个shake