Android Wear:测量传感器并防止环境模式/睡眠

赫菲斯托斯

我已经为Android Wear开发了一个应用,该应用需要一个小时左右的时间连续测量运动(加速度计)传感器,以进行数据收集。在操作过程中,我遇到了设备进入环境模式(或睡眠)并减慢(或关闭)传感器速度的问题。结果,我正在使用以下命令来锁定屏幕,并且它似乎可以正常工作。但这似乎也很浪费,因为我实际上不需要打开屏幕,只需运行传感器即可。

getWindow()。clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); //允许睡觉

目前,我在主要活动中具有onSensorsChanged()方法。我愿意将其放在服务中,但是据我了解,如果它仍位于主UI线程中,将无济于事。我可以将其放在自己的线程中,但是我不确定这会导致环境模式降低传感器的速度。问题:1)有没有办法防止环境模式?还是检测到将其关闭?2)如果传感器在各自的服务/线程中,我可以让活动进入睡眠状态并仍保持传感器全速收集吗?3)如果传感器在各自的服务/线程中,我是否仍可以通过dataapi将数据发送到手机?谢谢。

细绳

1)使用唤醒锁。为了使CPU保持唤醒状态,但让屏幕变暗,可以使用如下代码:

PowerManager powerMgr = (PowerManager) getSystemService(Context.POWER_SERVICE);
wakeLock = powerMgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
wakeLock.acquire(duration);

其中TAG的字符串表示持有唤醒锁的组件,duration以毫秒为单位。

我认为我不需要警告您有关使设备避免进入环境的不利电池影响。一个普通的Wear设备可能会持续一整个小时,也可能不会持续一整个小时。

2)是的。这是“”的一种定义Service,“一个应用程序组件代表应用程序希望在不与用户交互的同时执行长时间运行的操作”(来自https://developer.android.com/reference/android/app/ Service.html)。

3)是的。我在许多应用程序中都这样做;不需要Data API调用必须位于UI线程上。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有传感器数据的Android Wear表盘

来自分类Dev

Android Wear:未描述传感器类型

来自分类Dev

具有传感器数据的Android Wear表盘

来自分类Dev

Android Wear防止睡眠

来自分类Dev

如何在Android Wear模拟器上模拟来自心率传感器的数据?

来自分类Dev

注册传感器侦听器时,Android Wear应用程序崩溃

来自分类Dev

Android如何设置传感器延迟?

来自分类Dev

Android传感器和线程

来自分类Dev

Android传感器直立旋转

来自分类Dev

Android传感器和线程

来自分类Dev

Android传感器直立旋转

来自分类Dev

获取Android中的传感器列表

来自分类Dev

如何注销多个传感器的android

来自分类Dev

Android上的冗余运动传感器?

来自分类Dev

Android Wear模拟器和环境模式

来自分类Dev

Android-如何根据传感器名称获取传感器详细信息?

来自分类Dev

使用android cmake添加传感器链接器

来自分类Dev

Android传感器管理器-反应本机错误

来自分类Dev

为什么在Android中缺少传感器类型3?

来自分类Dev

使用传感器数据的Android智能电源管理

来自分类Dev

TYPE_SIGNIFICANT_MOTION传感器在Android中的实现

来自分类Dev

适用于Android的空中鼠标,哪个传感器?

来自分类Dev

用于模拟Android传感器的openintent的替代方法

来自分类Dev

Android传感器的偏航,俯仰和横滚

来自分类Dev

Android传感器无法在服务中运行

来自分类Dev

如何在Android中检测双击接近传感器?

来自分类Dev

Android接近传感器问题仅在Samsung设备中

来自分类Dev

android服务记录传感器数据不间断

来自分类Dev

如何在Unity中使用Android光传感器