android – 已弃用的Sensor.TYPE_ORIENTATION的等效替换

android – 已弃用的Sensor.TYPE_ORIENTATION的等效替换,第1张

概述我正在寻找一种替代已弃用的 Android传感器Sensor.TYPE_ORIENTATION的解决方案. 报告最多的解决方案是组合Sensor.TYPE_ACCELEROMETER和Sensor.TYPE_MAGNETIC_FIELD,然后使用SensorManager#getRotationMatrix计算旋转矩阵,并使用SensorManager#getOrientation获取欧拉角. 另 我正在寻找一种替代已弃用的 Android传感器Sensor.TYPE_ORIENTATION的解决方案.

报告最多的解决方案是组合Sensor.TYPE_ACCELEROMETER和Sensor.TYPE_MAGNETIC_FIELD,然后使用SensorManager#getRotationMatrix计算旋转矩阵,并使用SensorManager#getOrientation获取欧拉角.
另一个报告的解决方案是使用Sensor.TYPE_ROTATION_VECTOR,它也通过使用SensorManager#getorIEntation以旋转矩阵和欧拉角结束

不幸的是,当旋转移动设备时,这些行为与TYPE_ORIENTATION完全不同.在手机放在桌面上然后将其调高(音高)至90°(屏幕现在直接朝向您)时尝试这两种类型.计算出的方位角和滚动的欧拉角变得非常狂野(导致称为Gimbal lock问题的原因),而使用TYPE_ORIENTATION检索的度数值非常稳定(不准确但非常好). TYPE_ORIENTATION的每个值(偏航,俯仰和滚动)似乎都是某种“投射”程度而没有万向节锁定问题.

如果不使用折旧的TYPE_ORIENTATION传感器(可能来自旋转矩阵),获得相似度数(偏航,滚动和俯仰)的方法是什么? TYPE_ORIENTATION算法如何在内部完成?

解决方法 getorIEntation中的方位角是磁北极与设备y轴投影到世界x-y平面之间的角度.当设备达到90°时,投影是零矢量,因此在这种情况下方位角没有意义,可以是任何值.在物理上,试图找到磁北和指向天空的矢量之间的角度是没有意义的.
你应该在 https://github.com/hoananguyen/dsensor/blob/master/dsensor/src/main/java/com/hoan/dsensor_master/DProcessedSensor.java看一下我的项目 总结

以上是内存溢出为你收集整理的android – 已弃用的Sensor.TYPE_ORIENTATION的等效替换全部内容,希望文章能够帮你解决android – 已弃用的Sensor.TYPE_ORIENTATION的等效替换所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1125868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存