android: 为什么 getrotationmatrix 返回 false?

2023-11-21

我想获得手机的方向,并且我使用了这个代码,我发现很多人都在使用它。这是代码

    public void onSensorChanged(SensorEvent event) {
    //if the data sensor is unreliabel
    if(event.accuracy == SensorManager.SENSOR_STATUS_UNRELIABLE)
        return;

    //gets the value
    switch (event.sensor.getType()) {
    case Sensor.TYPE_ACCELEROMETER:
        gravity = event.values.clone();
        break;

    case Sensor.TYPE_MAGNETIC_FIELD:
        geomag = event.values.clone();
        break;
    }
    getOrientation();
}

private void getOrientation(){

    //if gravity n geomag have value, find the rotation matrix
            if(gravity != null && geomag != null){

                //check the rotation matrix found
                boolean success = SensorManager.getRotationMatrix(inR, I, gravity, geomag);

                if(success){
                    SensorManager.getOrientation(inR, orientVals);
                    azimuth = Math.toDegrees(orientVals[0]);

                    TextView azi = (TextView) findViewById(R.id.textAzi);
                    azi.setText("azi : " + azimuth);

                }
                TextView cek = (TextView) findViewById(R.id.cek);
                cek.setText("rotation: "+success);
            }   

但为什么 getrotationmatrix 总是返回 false ? 哪里有问题?


我再试一次并得到解决方案 但我将代码更改为如下所示

    public void onSensorChanged(SensorEvent event) {
    // TODO Auto-generated method stub
    switch (event.sensor.getType()) {
    case Sensor.TYPE_ACCELEROMETER:
        for(int i=0; i<3; i++){
            accelValues[i] =  event.values[i];
        }
        if(compassValues[0] != 0)
            ready = true;

        break;

    case Sensor.TYPE_MAGNETIC_FIELD:
        for(int i=0; i<3; i++){
            compassValues[i] = event.values[i];
        }
        if(accelValues[2] != 0)
            ready = true;

        break;
    }

    if(!ready)
        return;

    boolean cek = SensorManager.getRotationMatrix(inR, inclineMatrix, accelValues, compassValues);

    if(cek){
        SensorManager.getOrientation(inR, prefValues);
        mInclination = SensorManager.getInclination(inclineMatrix);

        //display every 30th values
        if(counter++ % 30 == 0){
            //do your code, what you want to do to the result
            counter = 1;
        }
    }

一切顺利

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

android: 为什么 getrotationmatrix 返回 false? 的相关文章

随机推荐

  • 为什么在浏览器中输入相同的代码时,Applescript 中的“do javascript”调用不执行?

    我试图弄清楚为什么当在 Safari 地址栏中输入相同的 javascript 代码有效时 我的 Applescript 不执行任何操作 转到搜索结果页面 例如 http www google com search q test 为了获得正
  • TRY/CATCH_ALL 与 try/catch

    我使用 C 一段时间了 并且熟悉正常的 try catch 然而 我现在发现自己在 Windows 上使用 VisualStudio 进行 COM 开发编码 代码的几个部分使用了以下内容 TRY do stuff CATCH ALL e i
  • 在目标 c 中声明浮点数

    我是新来的Objective C我在整体上遇到了麻烦nonatomic strong weak等等 我想知道使用时是否会遇到任何问题Core Data with float值的定义如下 property nonatomic float ra
  • 如何通过 MediaRecorder 将持续时间添加到文件记录器的元数据

    我正在录制视频媒体记录器在 Chrome 中 我的代码类似于MediaStream 文档中的示例 我收到的视频没有Duration元数据 我通过比较它mediainfo示例 webm 文件来自 https file examples com
  • 当中断发生时,x86架构中会发生什么?

    我正在研究x86和实时系统 我有一个问题 那就是 x86 遵循哪些步骤来处理任何中断 当中断发生时 CPU 会执行以下操作 将当前地址 指令指针的内容 压入堆栈 另外 推送处理器标志 但不是所有其他处理器寄存器 跳转到ISR 中断服务例程
  • R闪亮应用程序中使用shiny.router和navbarPage进行URI路由

    我想用shiny router创建指向闪亮应用程序选项卡的可共享链接 该应用程序使用navbarPage and tabPanel 这是不起作用的可重现示例 library shiny library shiny router page 1
  • 在 C 中进行堆栈操作而不使用内联汇编[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我一直在准备编码比赛 并在互联网上遇到了这个问题 include
  • builtins.TypeError:必须是 str,而不是 bytes

    我已将脚本从 Python 2 7 转换为 3 2 但有一个错误 coding utf 8 import time from datetime import date from lxml import etree from collecti
  • 在 cshtml razor 视图中分离 JavaScript

    我是 ASP NET MVC3 的新手 我正在尝试弄清楚如何将 JavaScript 包含 C 与 HTML 的其余部分分开 如果我将它们放入 JS 文件中并使用脚本标记插入它们 那么它们的 C 方面将停止工作 在 MVC 3 razor
  • 如何使用java填写Excel文件

    我有以下代码来填写Excel文件 我使用 Jsoup 从互联网上获得的信息 package knvbj import java io FileInputStream import java io FileOutputStream impor
  • CSS 转换在 Edge 中不起作用

    我陷入了以下问题 On 我创建的这个网站 我有一个位于页面底部的画廊 如果我将鼠标悬停在拇指上 它们会疯狂地飞来飞去 这不是我想要的 它在其他浏览器上的工作方式就像一个魅力 仅 Microsoft Edge 受到影响 有人可以帮助我让图像达
  • 任何关于免费互联网时间网络服务的参考

    我需要获取有关我的申请的日期和时间的实时信息 仅供参考 我为电视开发了一个应用程序 因此没有像我们从 new Date 获得的可靠的本地机器时间 我使用javascript进行开发 我的计划是从服务器获取时间 但我没有这个项目的服务器 所以
  • WPF CommandParameter MultiBinding 值 null

    我只是想将两个控件绑定为命令参数并将它们作为命令传递到我的命令中object XAML
  • C++ 将结构体类型转换为整数

    我的设计要求将值包含在 32 位字内的某些位中 例如 第 10 15 位必须保存值 9 其余位均为 0 因此 为了简单 可读性 我创建了一个结构体 其中包含所要求内容的分解版本 struct int part1 10 int part2 6
  • win64位必须安装jdk吗?

    我已经安装了 windows 7 x64 因此我很困惑是否必须安装 JDK x64 还是 JDK x86 请帮助我 谢谢 你不have如果您在 64 位 Windows 上运行 请安装 x64 版本的 JDK x86 32 位 版本也适用于
  • 使用 apache solr 的 Facet 动态字段

    我在 ApacheSolr 中定义了动态字段 我用它来存储产品特征 例如 颜色特征 直径特征 材料特征等 由于产品不断变化 这些字段的数量并不恒定 是否可以使用相同的查询获取所有这些动态字段的分面结果 或者我是否需要始终在查询中写入所有字段
  • 在 django 的单元测试期间无法更改用户权限

    我最终决定对我的应用程序进行一些测试 但我坚持测试一个用户是否可以更改另一个用户 取决于用户的类型 我使用 django rules 来进行逻辑权限检查 但这并不重要 这是我到目前为止的代码 class RulesAndPermission
  • 获取通过 ASP.NET Identity 中的 Microsoft 帐户进行身份验证的用户的电子邮件

    我正在使用 VS2013 中新的 MVC 5 模板附带的 ASP NET Identity 内容 我已经配置了外部登录提供商 以便人们可以使用 Google Facebook 或 Microsoft 进行注册 但是 我仍然想获取人们的电子邮
  • 如何调整图像“内部”的标签 Xamarin Forms

    I m trying to put a label inside of my image I couldn t use a Margin property because some reason it s not working until
  • android: 为什么 getrotationmatrix 返回 false?

    我想获得手机的方向 并且我使用了这个代码 我发现很多人都在使用它 这是代码 public void onSensorChanged SensorEvent event if the data sensor is unreliabel if