草庐IT

android - 如何计算手机从静止到垂直方向的移动?

我正在使用Android操作系统开发一个应用程序,为此我需要知道如何计算设备在垂直方向上的移动。例如,设备处于静止状态(A点),用户将其拿在手中(B点),现在A点和B点之间存在高度变化,我该如何计算?我已经阅读了有关传感器和加速度计的文章,但我真的找不到任何可以帮助我的东西。有人有什么想法吗? 最佳答案 如果你对加速度进行两次积分,你会得到位置,但错误是可怕的。它在实践中没有用。这是一个explanationwhy(GoogleTechTalk)在23:20。我强烈推荐这个视频。现在,您不需要任何准确的信息,那是另一回事。如视频中所

java - 获取光传感器值

所以我正在寻找一种方法来在按下按钮时获取光传感器的当前值(显然以Lux为单位)。这是我用来实现光传感器控制的代码publicclassSensorActivityextendsActivityimplementsSensorEventListener{privatefinalSensorManagermSensorManager;privatefinalSensormLight;intminLux=0;intcurrentLux=0;intmaxLux;publicSensorActivity(){mSensorManager=(SensorManager)getSystemServi

android - 帮助解决 PR​​OXIMITY_SCREEN_OFF_WAKE_LOCK 在 Android 中的问题

我在我的应用中启用了接近唤醒锁,它会在接近传感器检测到某些东西时关闭屏幕。但是当屏幕重新唤醒时出现了一个问题——它进入了锁屏界面,而不是我的应用程序。无论屏幕关闭的时间如何(即使传感器在几秒钟后被清除),都会发生这种情况。这是我使用的代码:intPROXIMITY_SCREEN_OFF_WAKE_LOCK=32;mProximityWakeLock=pm.newWakeLock(PROXIMITY_SCREEN_OFF_WAKE_LOCK,LOG_TAG);if(!mProximityWakeLock.isHeld()){mProximityWakeLock.acquire();}有什

屏幕关闭时非工作传感器的 Android 解决方法

[编辑:删除所有提及Android版本的内容——该问题存在于所有android版本]背景:当屏幕关闭时,许多Android手机不会通过在屏幕关闭时调用onSensorChanged()来向应用程序提供加速度计读数的更新。此行为在S.O.上进行了讨论。并在此处进一步记录http://code.google.com/p/android/issues/detail?id=3708在某些手机(NexusS、DroidX2等)上,只有在值发生重大变化时才会提供加速度计值。例如,坐在table上不动,每分钟可能有一个或零个更新为了生成跨手机型号的健壮代码,我如何区分每次屏幕关闭时缺少更新事件与每次

android - 使用 Android Things 通过 DHT11 读取温度

我正在使用Raspberrypi3和DHT11传感器进行温度监测项目。我有以下引脚位置VCC到引脚号:2接地引脚号:6输出到GPIO:BCM22即引脚15我用过的代码:publicclassWeatherStationActivityextendsActivity{privateHandlermHandler=newHandler();privateTextViewmTxtStatus;privatePeripheralManagerServiceservice=newPeripheralManagerService();privateGpiotempGpio;privateinti=

android - 在 Android 平台上获取 Sensor 的数据

要在Android平台上读取传感器数据(即加速度计、陀螺仪、磁力计、气压计、GPS),互联网上的人们正在谈论两种获取此类数据的方法主要方式:通过JAVA使用AndroidSDK读取数据。第二种方式与使用AndroidNDK读取数据有关。如果不使用SDK或NDK,直接通过SPI、I2C或UART与传感器通信怎么样?我知道我需要理解传感器的通信协议(protocol)并读取特定的寄存器,我可以从中以更有效的方式获取数据。这可能吗? 最佳答案 瓦利德,理论上这是可能的。如果你在大多数技术问题上投入足够的时间和金钱,解决方案就成为可能。但我

android - 手机传感器

经过几个小时的搜索,我很困惑,所以我现在就说说我学到的东西,如果我错了,请纠正我:光传感器:周围光磁性传感器:我可以得到北方的位置。加速计传感器:重力XYZ、地球重力或任何加速度。接近传感器:就像parking传感器一样。方向传感器:告诉XYZ度从他们的轴。我已经使用来自Android市场的一些应用程序(例如“我的传感器”)尝试了这些传感器,并且我可以确认如果您在table上方旋转手机,加速度计传感器不会感觉到。虽然方向传感器似乎捕捉到了所有的Action。现在我可以得出结论,指南针应用程序使用磁传感器来查看北方在哪里,然后使用方向传感器来了解您使用设备的方向,对吗?在纵向和横向模式之

android - 如何/我应该实现卡尔曼滤波器以获得准确的加速度计数据?

我想从Android手机的内置加速度计中获取尽可能准确的数据。我想跟踪x和y轴上的二维运动,甚至必须记录小运动。当手机平放在table上时,当我查看来自加速度计/线性加速度的数据时,当我应该为零时,它会发生很大变化。我看过卡尔曼滤波器,这似乎是一种不错的方法,但我在设置模型时遇到了问题。1。卡尔曼滤波器是否是从加速度计获取尽可能准确数据的方法?2。卡尔曼滤波器会起作用吗?也许我误解了,但加速度或速度似乎必须是恒定的?3。如何设置使用卡尔曼滤波器的模型?我无法理解(除其他外)过程噪音是什么? 最佳答案 当所有测量值(在本例中为加速度)

java - 在 Android 2.1 中使用 getRotationMatrix 和 getOrientation

这个问题困扰我太久了。此代码应输出加速度计的dx、dy、dz,以及dx的运行总和。它还应输出方位角、俯仰角和横滚角。I'veusedtheinformationgivenhere,但无济于事。此代码无法正确输出俯仰角、方位角或横滚角。它分别为最后三个TextView输出0.0、-0.0、-0.0。switch(event.sensor.getType()){caseSensor.TYPE_ACCELEROMETER:accelerometerValues=event.values.clone();caseSensor.TYPE_MAGNETIC_FIELD:geomagneticMat

android - 安卓方向传感器的奇怪行为

目前,我正在尝试使用方向传感器值旋转3D立方体,使用getRotation()方法。当android设备旋转到一定范围以上时,会观察到一些意外行为。例如,如果我让设备“站起来”,“滚动”的值(value)就会变得疯狂。我也遇到了类似于所谓的gimbal-lock的现象。唯一的区别是我什至在将传感器值应用于3D旋转之前就遇到了这个问题。当我尝试通过仅围绕“俯仰”轴旋转设备来更改“俯仰”值时,“偏航”值也会根据俯仰旋转而变化。这对我来说似乎完全不合理。有人可以帮帮我吗??我被这个问题困了一个月。 最佳答案 这是偏航、俯仰和滚转的常见问题