获得无重力加速度

2024-04-04

我是安卓开发新手。我想获得手机的实际加速度。我找到了一个获得加速度的代码。但它给出了重力加速度。请任何人帮助我找到一种在没有重力的情况下获得实际加速度的方法。 这是我找到的代码,请帮我解决这个代码。谢谢

    package com.SensorTest;

    import android.app.Activity;
    import android.hardware.Sensor;
    import android.hardware.SensorEvent;
    import android.hardware.SensorEventListener;
    import android.hardware.SensorManager;
    import android.os.Bundle;
    import android.widget.TextView;


    public class SensorTestActivity extends Activity implements SensorEventListener {

    SensorManager sensorManager = null;

    //for accelerometer values
    TextView outputX;
    TextView outputY;
    TextView outputZ;

    //for orientation values
    TextView outputX2;
    TextView outputY2;
    TextView outputZ2;

     @Override
     public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
        setContentView(R.layout.main);

        //just some textviews, for data output
        outputX = (TextView) findViewById(R.id.TextView01);
        outputY = (TextView) findViewById(R.id.TextView02);
        outputZ = (TextView) findViewById(R.id.TextView03);

        outputX2 = (TextView) findViewById(R.id.TextView04);
        outputY2 = (TextView) findViewById(R.id.TextView05);
        outputZ2 = (TextView) findViewById(R.id.TextView06);


     }


    @Override
    public void onAccuracyChanged(Sensor arg0, int arg1) {
        // TODO Auto-generated method stub

    }

 @Override
 public void onSensorChanged(SensorEvent event) {
synchronized (this) {
    switch (event.sensor.getType()){
        case Sensor.TYPE_ACCELEROMETER:
            outputX.setText("acclaration x:"+Float.toString(event.values[0]));
            outputY.setText("acclaration y:"+Float.toString(event.values[1]));
            outputZ.setText("acclaration z:"+Float.toString(event.values[2]));
        break;
    case Sensor.TYPE_ORIENTATION:
            outputX2.setText("orientation x:"+Float.toString(event.values[0]));
            outputY2.setText("orientation y:"+Float.toString(event.values[1]));
            outputZ2.setText("orientation z:"+Float.toString(event.values[2]));
    break;

            }
        }
    }


    @Override
    protected void onResume() {
       super.onResume();
       sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), sensorManager.SENSOR_DELAY_GAME);
       sensorManager.registerListener(this, sensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION), sensorManager.SENSOR_DELAY_GAME);
    }

    }

在没有重力的情况下无法直接获得加速度。

您可以使用高通滤波器,例如Android 参考页面 http://developer.android.com/reference/android/hardware/SensorEvent.html#values, 在里面Sensor.TYPE_ACCELEROMETER部分:

public void onSensorChanged(SensorEvent event) {
      // alpha is calculated as t / (t + dT)
      // with t, the low-pass filter's time-constant
      // and dT, the event delivery rate

      final float alpha = 0.8;

      gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
      gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
      gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];

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

获得无重力加速度 的相关文章

  • 在应用程序简历中隐藏软键盘

    我有一个 Android 应用程序 使用 Xamarin 用 C 编写 我已将应用程序简化为包含 TextView 和用于横幅广告的 Google admod AdView 的 LinearLayout 我不希望软键盘出现在应用程序中 这不
  • 使用 Android 前台服务为 MediaPlayer 创建通知

    问题就在这里 我目前正在开发一个应用程序 该应用程序必须提供 A 广播播放器 来自 URL 的 AAC 直播 还有一个播客播放器 来自 URL 的 MP3 流 该应用程序必须能够在后台运行 Android 服务 并通过以下方式向用户公开持续
  • Android - 如何一次只允许播放一个 MediaPlayer 实例?

    我正在尝试创建一个简单的 Sound board Android 应用程序 使用 ListView 项目作为按钮 顺便说一句 我是一个新手程序员 我的想法是 我按下一个按钮 就会播放一个特定的声音文件 如果我在播放声音时按下任何按钮 它应该
  • 从 Throwable 获取错误代码 - Android

    我怎样才能从错误代码可投掷 https developer android com reference java lang Throwable html public void onFailure Throwable exception 我
  • Android第一次动画不流畅

    我正在尝试一个动画将 imageView 从屏幕底部滑动到屏幕中心 但是当我第一次执行此动画时 它不平滑 但当第二次执行动画时 它是正常且平滑的 我几乎尝试了所有方法 但无法解决我的问题 这是我的动画文件
  • 导航组件重复 NavArgs 的问题

    我有一个片段 class SomeFragment private val args by navArgs
  • 为什么将函数参数声明为最终的?

    我目前正在阅读 Sams 出版的 24 小时自学 Android 应用程序开发 一书 我对 Java Android 或其他方面还比较陌生 我对 ActionScript 3 有非常扎实的背景 它与 Java 有足够的相似之处 因此该语言本
  • Android libgdx 首选项丢失

    我在 Libgdx 引擎中创建了 Android 游戏 一段时间后 我注意到在某些应用程序杀手中杀死该应用程序后 或者如果我在 Android 设置中执行 强制关闭 操作 我保存到首选项中的游戏选项就会丢失 有办法防止这种情况吗 我从来没有
  • KitKat(及更低版本)设备上的 Android Material Design

    我将在我们学校开发一个 Android 应用程序作为一个项目 我想使用 Google 的新 Material Design 但我知道它仅适用于 Android L 设备 Jack Underwood 最近发布了名为 Today Calend
  • 无法在自定义 AOSP 上安装 Google Play 中的某些应用程序:项目不可用。理由:9

    我在尝试从 Google Play 安装某些应用程序时收到以下错误 LibraryUtils isAvailable not available restriction 9 DocUtils getAvailabilityRestricti
  • 在意图过滤器中使用多个操作时的默认值

    尝试理解 Android 中的意图和操作并查看文档 http developer android com guide topics intents intents filters html 但我一直看到的一件事是定义了多个操作的意图过滤器
  • TextView 之间有分隔线

    我正在尝试在 android studio 中创建以下布局 因为我对 android 东西还很陌生 所以我第一次尝试使用 LinearLayout 并认为这可能无法实现 现在我正在尝试使用RelativeLayout 我已经用颜色创建了这个
  • 请求位置更新参数

    这就是 requestLocationUpdates 的样子 我使用它的方式 requestLocationUpdates String provider long minTime float minDistance LocationLis
  • 从 android 简单上传到 S3

    我在网上搜索了从 android 上传简单文件到 s3 的方法 但找不到任何有效的方法 我认为这是因为缺乏具体步骤 1 https mobile awsblog com post Tx1V588RKX5XPQB TransferManage
  • 如何创建像谷歌位置历史记录一样的Android时间轴视图?

    我想设计像谷歌位置历史这样的用户界面 我必须为我正在使用的应用程序复制此 UIRecyclerView 每行都是水平的LinearLayout其中包含右侧的图标 线条和视图 该线是一个FrameLayout具有圆形背景和半透明圆圈Views
  • Android 设备上的静默安装

    我已经接受了一段时间了 在 Android 上静默安装应用程序是不可能的 也就是说 让程序安装捆绑为 APK 的应用程序 而不提供标准操作系统安装提示并完成应用程序安装程序活动 但现在我已经拿到了 Appbrain 快速网络安装程序的副本
  • 通过 ADB 拔出设备:“找不到服务”

    我必须测试我的应用程序在打瞌睡模式下的行为 根据文档 https developer android com training monitoring device state doze standby html testing doze 我
  • Android:有没有办法以毫安为单位获取设备的电池容量?

    我想获取设备的电池容量来进行一些电池消耗计算 是否可以以某种方式获取它 例如 三星 Galaxy Note 2 的电池容量为 3100mAh 谢谢你的帮助 知道了 在 SDK 中无法直接找到任何内容 但可以使用反射来完成 这是工作代码 pu
  • Android 如何聚焦当前位置

    您好 我有一个 Android 应用程序 可以在谷歌地图上找到您的位置 但是当我启动该应用程序时 它从非洲开始 而不是在我当前的城市 国家 位置等 我已经在developer android com上检查了信息与位置问题有关 但问题仍然存在
  • 无法运行我的应用程序,要求选择 Android SDK

    今天我已经安装了Android Studio 金丝雀 1 现在我无法运行我的应用程序 将出现以下对话框 我已经通过 文件 gt 项目结构 gt Android SDK 位置 设置了正确的 SDK 位置 期待您的帮助来解决这个问题 警告对话框

随机推荐

  • 检查 Python 列表中的项目是否为 int/number

    我有一个 Python 脚本 它读取 csv 文件并将每个值存储到列表列表中 list x y 我对此没有任何问题 list i 0 for row in reader list append list i append row 0 i 1
  • 为什么 std::search 需要前向迭代

    我的问题与下面的线程相同 我正在努力理解给出的答案 或者更确切地说 我的代码不应该工作 因为它只使用输入迭代器 但我的 func 似乎工作并且行为与 std search 相同 所以我不知所措 不愿意在没有正确理解的情况下继续前进 也许如果
  • Ruby 中 <

    我正在学习Ruby 在我使用的书中 有这样的示例代码 restaurant Restaurant new restaurant name Mediterrano restaurant description lt
  • 为什么我的 g++ 和 gcc 版本没有升级?

    我在 Mac 上 我将 OSx 更新到 Yosemite 我将 xcode 更新到版本 6 我下载了命令行工具 尽管如此 每当我输入 g version 时 我都会得到 g version couldn t understand kern
  • 调用 Activity 加载方法,Android [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想在活动加载后立即调用一个方法 该方法是公共无效的 任何帮助 将不胜感激 您可以使用以下方法 您可以在活动启动时在其中任何一个方法之间调
  • aws s3 ls 给出错误 botocore.utils.BadIMDSRequestError:

    最近我按照aws官方网站的文档在Linux机器上安装了aws cli 第一次 我能够毫无问题地运行 s3 命 令 作为开发的一部分 我卸载了 aws cli 并重新安装了它 我收到错误 botocore utils BadIMDSReque
  • 在 IPython 中导入时的最佳实践

    我正在编写一个 py 文件 该文件将在第一个单元格中的一些 IPython 会话开始时定期导入 但也将从其他非交互式会话导入 因为它包含可以在非交互式环境中批量运行的函数 交互模式 它基本上是一个包含许多非常常见的类和函数的模块 因为我使用
  • Microsoft Reporting v.10 加载问题

    我正在尝试在我的 vs studio 网站中引用 microsoft reporting v 10 0 0 0 由于某种原因 它无法实现这一点 因为它总是给我一个编译错误 表明它无法加载类型 错误 2625 无法从程序集 Microsoft
  • 在 iPhone 应用程序中创建下拉列表

    当我单击带有箭头符号的按钮时 可用项目列表应显示为列表 谁能帮助我编写为 iPhone 应用程序开发此代码的代码 UIPickerView 是正确的控件 是 iOS 用户期望的控件 也是 Apple iOS 人机界面指南指定的控件 即使在
  • 具有伴生对象的类与同名的类和对象有什么区别?

    Scala 类的 伴生对象 可以被视为具有与该类相同的完全限定名称的单例对象 即相同的名称 在同一包中 它们用于保存类的所有实例共有的实用函数 作为 Java 的替代品static方法 然而 在文档和问题的不同地方 它说伴生对象必须在同一编
  • 如何检测同一键盘按键仅按下一次

    我正在设计一个键盘类 它只能检测一次键盘按键 但我仍然不知道如何做到这一点 我的目标是仅检查并在持续按下或保持按住同一键时仅执行一次操作 并且当同时按下 2 个操作键时不执行任何操作 例如 当我持续按住 A 键时 操作 1 只会执行一次 然
  • OpenCv错误无法通过视频采集打开相机

    我通过 opencv 使用相机 重新启动后突然运行我的代码 它显示以下错误 WARN 0 global io opencv modules videoio src cap v4l cpp 802 open VIDEOIO ERROR V4L
  • 将参考 SVG 图像嵌入 HTML 文件

    我有一个项目 我想将简单的图形背景放入表格单元格中 背景图像和一个小的 svg 文件效果很好 但我真的很想将源代码全部保存在一个文件中 也就是说 我希望能够在 HEAD 中定义图像 并在内联 STYLE css 中引用它 我已经尝试了 sv
  • JAXBElement.getValue() 返回 null

    我的 Pojo 类中有一对多映射 一家店有一家分店 一个分店有很多家店铺 这是商店代码 XmlAccessorType XmlAccessType FIELD XmlRootElement name Shop public class Sh
  • (Chez) 用于隐藏 lambda 的方案宏

    我想编写一个宏来创建速记语法来隐藏更详细的 lambda 表达式 但我很难理解如何编写宏 我意识到这是反对使用它们的一个论据 给出这个例子 define alist example x 1 2 3 y 4 5 6 z 7 8 9 defin
  • 带开始/暂停和重置按钮的倒计时器

    我想在 React JS 中创建一个倒计时器 其中包含 开始 暂停 和 重置 按钮 以便操作计时器 作为 React 和 JS 的初学者开发人员 我创建了一个状态变量 secondsElapsed 以便输入计时器的时间 以秒为单位 star
  • CSS3 在 ios 上的过渡缓慢/不工作

    我正在尝试在我正在制作的响应式网站上开始使用一些 CSS3 转换 并且在桌面 Chrome 和 Android 上的 Chrome 上一切正常 但在 Chrome 和 Safari 的 iOS 设备上无法正常工作 例如 我用于菜单的 CSS
  • 在 SwiftUI TabView 中禁用滑动手势

    试图实施一个TabView with PageTabView风格SwiftUI 其中导航仅以编程方式完成 并且所有滑动手势均被禁用 这个解决方案 https stackoverflow com questions 63168014 swif
  • 带背景颜色的盒装标签

    如何绘制boxed label具有特定的background颜色 如图例框 你的意思是这样的吗 LABEL label in a box set obj 10 rect at 0 0 size char strlen LABEL char
  • 获得无重力加速度

    我是安卓开发新手 我想获得手机的实际加速度 我找到了一个获得加速度的代码 但它给出了重力加速度 请任何人帮助我找到一种在没有重力的情况下获得实际加速度的方法 这是我找到的代码 请帮我解决这个代码 谢谢 package com SensorT