草庐IT

sensorManager

全部标签

android - Android SensorManager 中的 getSensorList() 与 getDefaultSensor()

我正在为Android编写游戏并希望能够使用加速度计进行输入。我看到两种获取传感器的方法,一种方法是使用SensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER)的第一个元素,另一种是SensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER))。getDefaultSensordoc说它可以返回一个“复合”传感器,所以如果我想要一个“原始”传感器,我应该使用getSensorList。知道复合传感器和原始传感器之间的区别是什么吗?这甚至适用于加速度计吗?任何人都有使用包含多个或复合

android - 使用传感器的方向

在我的应用程序中,我想显示设备方向,例如北、南、东、西。为此,我正在使用加速度计和磁传感器并尝试使用以下代码。publicclassMainActivityextendsActivityimplementsSensorEventListener{publicstaticfloatswRoll;publicstaticfloatswPitch;publicstaticfloatswAzimuth;publicstaticSensorManagermSensorManager;publicstaticSensoraccelerometer;publicstaticSensormagneto

Android 自然传感器方向帮助

我正在尝试完成RetoMeier推荐的防止屏幕方向改变的方法。他在GoogleIO期间的演讲幻灯片(参见#23)可以在AndroidProtips:WheretoDownloadtheSlidesandCodeSnippets中找到。.我已经逐步完成代码并设置了值,但屏幕方向仍然发生变化。仅供引用,我在应用程序中注册了这个监听器。这是我的代码:finalSensorManagersm=(SensorManager)getSystemService(Context.SENSOR_SERVICE);sm.registerListener(newSensorEventListener(){@

Android 设备方向是横向,但传感器的行为类似于方向是纵向

我在android中遇到方向问题。设备方向是我在AndroidManifest.xml文件中设置的横向。android:screenOrientation="landscape"此外,我将设备横向放置,因此所有内容(布局、View等)都处于横向模式,如我所愿。但只有当我纵向拿着设备时,它才会给我需要的值。我从互联网上修改了一些代码,它适用于HTC3dEVO、Nexus7和三星GalaxyS3,但不适用于GalaxyTablet10。我找到了这篇文章。AndroidOrientationSensorDifferentforDifferentDevices?接受的答案建议使用getRota

android - 如何使用 SensorManager.getOrientation() 而不是 TYPE_ORIENTATION

我正在用android开发一个应用程序。该应用程序在数据库中保存了一些引号,我想使用手机的传感器在屏幕上滑动引号。所以我希望当手机向左移动时,我可以在屏幕上看到下一个报价,当我将手机向右移动时,我可以在屏幕上看到上一个报价。你觉得什么类型的感应手机比较好用?我正在尝试使用Type_orientation但出现错误:此常量在API级别8中已弃用。如何将其替换为SensorManager.getOrientation()。或者您认为还有其他传感器更适合我使用吗?packagecom.example.prova1;importjava.util.HashMap;importandroid.a

Android SensorManager.java getOrientation 和 getRotationMatrix 算法

我想弄清楚getRotationMatrix()和getOrientation()是如何工作的。到目前为止,我已经知道在getRotationMatrix()函数中,它将重力矢量与磁矢量进行叉积以获得指向东方的新矢量。然后,它再次将东矢量与重力矢量进行叉积,以获得指向磁北的矢量。根据这个article说,现在我们有了三个正交向量,我们可以组成一个旋转矩阵。这是我的第一个问题:为什么我们应该再次将东矢量与重力矢量进行叉积以获得指向磁北的矢量?原来的磁矢量不是指向磁北吗?新矢量和原来的磁矢量有什么区别?关于getOrientation(),这是我的第二个问题:方位角、横滚和俯仰角是如何得出

android - 由于 OTA 更新到 Marshmallow,我基于陀螺仪的应用程序不再工作

我已通过OTA将我的Nexus5升级到Marshmallow。由于更新简单的基于传感器的Activity不再起作用。以下代码执行它在其他设备(GalaxyS4Lolipop、AVD、...)上应该执行的操作有人做过这个实验吗?我错过了什么吗?代码如下:build.gradleapplyplugin:'com.android.application'android{compileSdkVersion22buildToolsVersion"23.0.1"defaultConfig{applicationId"fr.rouk1.test"minSdkVersion16targetSdkVer

android - TYPE_MAGNETIC_FIELD 事件未在我的 Galaxy Nexus ICS 4.0.2 上触发

我正在尝试获取手机的倾斜角度,并且我的这项Activity在我的LGOptimusS上完美运行,上面有2.3,但在我运行ICS4.0.2的库存VerizonGalaxyNexus上,TYPE_MAGNETIC_FIELD事件从不火灾。因为TYPE_MAGNETIC_FIELD事件从不触发,所以我没有获得传递到SensorManager.getRotationMatrix所需的mGravs数组。所以我无法分辨手机的角度。正如我提到的,这段代码在我的其他设备上运行良好,我可以毫无问题地看到手机的倾斜角度。有人知道为什么我不能用我的GalaxyNexus参加这个Activity吗?是否对SD

安卓方向检测肤色

所以我需要知道基于android的手机何时旋转了基于倾斜的程序的x、y、z方向,然后我使用了循环良好的代码,该代码使用磁力和加速度来查找自方向检测器以来的方向是不可靠的,这在x,z平面上很好,但是假设一个人在循环移动的公共(public)汽车上,将他们的手机保持在固定的横向位置,然后即使用户没有移动他们的手机,android也会记录y方向的移动在y方向上,因此程序失败,但仅使用加速度也不准确,我想知道如何解决检测相对于用户的y运动的问题?publicclassMotionListener{Stringservice_name=Context.SENSOR_SERVICE;SensorM

java - 静止不动时使用 TYPE_ROTATION_VECTOR 实现当前基本方向方法?

在Android设备上似乎有很多获取当前主方向的旧示例,但Google提供的官方解决方案似乎没有出现在他们的文档中。最古老的引用资料Sensor.TYPE_ORIENTATION已被弃用,最近的引用资料提到了Sensor.TYPE_ACCELEROMETER和Sensor.TYPE_MAGNETIC_FIELD(我试过收效甚微——精度会根据设备方向迅速变化)。我一直在尝试使用这两个实现,例如this.我什至见过一些带有TYPE.GRAVITY的。mostrecentseemtosuggestTYPE_ROTATION_VECTOR这显然是一个融合传感器(reference),但示例实现