Android 指南针示例

发布于 2024-12-25 02:14:21 字数 292 浏览 0 评论 0 原文

我正在寻找 Android 的指南针示例。我需要做的就是获得正确的方位(在纵向和横向模式下)。

我已经找到了几个示例,有些仅使用 Sensor.TYPE_ORIENTATION,有些使用 Sensor.TYPE_ACCELEROMETERSensor.TYPE_ACCELEROMETER 的组合。 传感器.TYPE_MAGNETIC_FIELD

哪个是正确的 &获取 Android 1.6 - 4.0 的常用方法?

I'm searching for a compass example for Android. All I need to do is to get the correct bearing (in portrait & landscape mode).

I already found several samples, some use only Sensor.TYPE_ORIENTATION, some use a combination of Sensor.TYPE_ACCELEROMETER & Sensor.TYPE_MAGNETIC_FIELD.

Which is the correct & common way to get the bearing for let's say Android 1.6 - 4.0?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

别理我 2025-01-01 02:14:21

Sensor.TYPE_ORIENTATION 已弃用。

该文档说您应该使用 SensorManager.getOrientation() 代替。

因此,您应该从 Sensor.TYPE_ACCELEROMETER 以及 Sensor.TYPE_MAGNETIC_FIELD 读取数据,然后调用 SensorManager.getRotationMatrix(),最后调用 SensorManager.getOrientation() 它将返回手机的方向。

从那里,如果您看到此图,就可以轻松获得手机的方向。这可能就是你的第二个例子的作用,但我不知道,因为你没有告诉我它是什么。

Sensor.TYPE_ORIENTATION is deprecated.

The documentation says you should use SensorManager.getOrientation() instead.

So you should read from Sensor.TYPE_ACCELEROMETER as well as from Sensor.TYPE_MAGNETIC_FIELD, and then call SensorManager.getRotationMatrix() and finally SensorManager.getOrientation() which will return you the orientation of the phone.

From there if you see this diagram it is trivial to get the phone's orientation. This is probably what your second example does, but I don't know because you didn't show me what it is.

梦里泪两行 2025-01-01 02:14:21

感谢 Dan 提供示例代码。

但只有一个小修正:根据此 event.values 更改为 event.values.clone() ://groups.google.com/forum/?fromgroups=#!topic/android-developers/UNMaDEUcXb0" rel="noreferrer">讨论
经过此修改后,它现在对我有用。

Thanks to Dan for his sample code.

But there is just a little correction : change event.values to event.values.clone() according to this discussion.
It works for me now after this modification.

忘东忘西忘不掉你 2025-01-01 02:14:21

使用 Sensor.TYPE_ACCELEROMETERSensor.TYPE_MAGNETIC_FIELD 以及 SensorManager.getOrientation() 方法的组合不会给我精确的值。已弃用的方法 Sensor.TYPE_ORIENTATION 效果很好。 :)

Using a combination of Sensor.TYPE_ACCELEROMETER and Sensor.TYPE_MAGNETIC_FIELD and SensorManager.getOrientation() method doesn't give me precise values. The deprecated method Sensor.TYPE_ORIENTATION works well. :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文