问题标签 [android-sensors]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - android上传感器管理和摄像头的正确组合
我编写了一个 android 活动来充当简单的相机,但是当我拍摄照片时,活动会存储图像并在旁边存储一个 txt 文件,该文件记录手机的 gps 位置和方向(即加速度计和数字罗盘读数) . 该活动有效,但我不确定它是否正确编写。我是 android 和 java 的新手,所以如果有人可以检查它,那就太好了。我很担心,因为当我第一次开始开发这个时,我的开发设备开始变得有趣和过热等等。虽然我不能 100% 确定,但这可能与编码错误有关。也许与我将所有内容的引用传递给每个类的方式有关,这可能不是一个好主意,但我想不出另一种方法,感谢您的帮助。
这是主要的活动代码:
这是orientationmanager代码:
再次感谢您的帮助
java - Android:onSensorChanged 的替代方案?手机仰卧在桌子上时没有ACCELEROMETER数据(没有移动时)
所以我使用这段代码来获取加速度计数据。当我在 DDMS 模式下检查我的打印语句正在打印什么时,我注意到手机不动时没有打印任何内容。IE。它在桌子上。我认为原因是当手机不动时不会调用 onSensorChanged,然后在手机再次开始移动时调用它。如果我想无论手机是否移动都想捕获数据,我应该使用其他功能吗?有什么选择吗?或任何解决方案?任何帮助表示赞赏。
谢谢!
android - 如何仅在 UI 旋转时调用 OrientationEventListener.onOrientationChanged()
可能重复:
如何检测屏幕旋转
你好,
我想做的就是检测我的应用程序中的旋转变化。但是,我想我在 Android 系统中发现了一个错误。如果你读到这个:
http://developer.android.com/guide/practices/optimizing-for-3.0.html#Landscape
就是说每次设备改变方向时,都会调用 Activity.onDestroy() ,并调用 Activity.onCreate() 。所以我想我可以只使用 Display.getRotation() 方法来确定我在 Activity.onCreate() 方法中的新方向。但是,我发现由于某种原因,如果您将设备快速翻转 180 度,则永远不会调用 onCreate()(甚至 onResume())。我使用 toast 消息证明了这一点。我的 Activity.onCreate()(或 Activity.onResume())中的 toast 消息会出现 90 度旋转,但不会出现 180 度翻转设备。所以关键是,上面文章中的说法并不总是正确的。
于是我决定使用 OrientationEventListener.onOrientationChanged()。这可行,但我不希望在我的应用程序中一遍又一遍地调用 onOrientationChanged() (它会随着设备的度数的每一次变化而被调用)。这会减慢我正在做的其他事情。我只希望在我将屏幕旋转到足以让屏幕上的图像旋转时调用它,以便我可以确定我是在rotation_0、rotation_90、rotation_180 还是rotation_270。
这当然是 xoom。
有什么建议么
java - 如何在 Android 的模拟器上测试传感器管理器?
我正在实施传感器管理器来测试设备是否移动它应该给出准确性。但问题是我没有设备来测试这段代码。是否可以在模拟器上测试这个传感器管理器代码?
在此先感谢,阿比
android - “自定义”传感器事件率似乎不适用于 SensorManager.registerListener(SensorEventListener listener, Sensor sensor, int rate)
更新:
我能够通过引入一个类范围的静态计数器并忽略任何 x 个事件来解决我遇到的特定问题。但是我仍然想知道我做错了什么:在微秒内注册带有提示的侦听器,而不是使用四个给定常量之一。
我的应用程序中的一个 Activity 正在使用传感器来获取设备的方向、确定滚动并利用它。
我在用
SensorManager.registerListener(SensorEventListener listener, Sensor sensor, int rate)
注册我的传感器。来自此方法的 Android 文档:
参数
[...]
速度
速率传感器事件的发送时间为。这只是对系统的提示。事件的接收速度可能比指定的速率快或慢。通常会更快地接收到事件。该值必须是 SENSOR_DELAY_NORMAL、SENSOR_DELAY_UI、SENSOR_DELAY_GAME 或 SENSOR_DELAY_FASTEST 之一,或者是所需的事件之间的延迟(以微秒为单位)。
如果我使用 4 个预定义常量之一,那么应用程序可以正常工作;然而,这些常数都提供了对我的需要来说太快的速率提示。我必须发送一个 UDP 数据包,其中包含每个事件更改的一些信息,并且接收端似乎完全被使用任何预定义速率的消息淹没。使用像 30000 这样的整数(因为 API 以微秒为单位指定数量)会导致应用程序停止同时报告传感器事件。
我错过了什么阻止我使用自己的事件率提示?
android - 如何在获得加速度计测量的同时获得方位角!方向与加速度计
我正在做这个应用程序,它就像一个计步器计算步数,但我希望它显示每一步的方向。
我正在做的是注册两个事件侦听器,然后对于每个onsensorchanged
事件,我获取 的值sensor.TYPE_ORIENTATION
以获取方位角,以及 的值sensor.TYPE_ACCELEROMETER
,我查看是否给出了步骤。
此时我得到了正确的值,但我只想在步数完成后达到方位角的峰值!我该怎么做?
我假设它将在OnSensorChanged
方法内部完成,但我不知道如何在加速计传感器被激活并且步数被计算时调用方向传感器。
查看代码内部会是这样的:注册两个监听器后,ACCELEROMETER
和ORIENTATION
希望有人能澄清我这个..
android - GPS 和 SensorManager 值应更新相机预览
大家好,我希望在 GPSlocation 和 Sensor Manager 值发生变化时更新我的相机预览,我目前为此目的使用了两种服务,但我无法在我的预览中收到更新。是否可以将这些服务合二为一,然后使用意图和广播接收器?还是有任何替代方案?请指导我这个谢谢
algorithm - 使用 GPS/指南针/加速度计到达航点 - 算法?
我目前有一个带有一些传感器的机器人,比如 GPS、加速度计和指南针。我想做的是让我的机器人到达我输入的 GPS 坐标。我想知道是否已经存在任何算法来做到这一点。我不想要一个没有任何意义的源代码,只是我的机器人要遵循的程序,以便我能够理解我在做什么......现在,让我们想象一下每次都可以访问 GPS 坐标,因此不需要卡尔曼滤波器。我知道这是不现实的,但我想一步一步地编程,下一步是卡尔曼。
如果有人有想法...
android - 轮询传感器值时的最佳做法是什么?
我正在开发一个需要定期获取传感器值的应用程序。为此,我以设定的时间间隔使用 AlarmManager 和 Receiver。Android 的传感器实现似乎专注于数据的连续读取,并且似乎不可能轮询单个当前读数。
我的问题是“模拟”投票机制的最佳实践是什么?有没有我没有遇到过的例子?一种方法是调用 registerListener(),获取当前读数,然后调用 stopListener()。但是,这似乎不起作用,因为无法立即读取。
android - 开发隐形 Android 应用程序
对于我的学校项目,我必须开发一个 Android 应用程序,该应用程序可以持续跟踪手机的所有者,并让他在丢失时跟踪手机。
对于这种应用程序,我需要在手机启动时在后台启动应用程序。我想知道我怎么能做到这一点?
也许你对我可以用来跟踪手机是否在手机附近的所有传感器有一些想法。
谢谢!