如何防止Android Wear离开环境模式并在几分钟后变黑

我正在尝试编制一个床头钟,就像Moto 360一样,显示充电时的夜晚时间 . 因此我根据https://developer.android.com/training/wearables/apps/always-on.html#BackwardCompatibility设置了一个带有警报管理器的"Always-On-App",它基本上按照预期工作("Diesel On Full Guard"上的Android 7.1.1可穿戴活动) .
然而,在 table 上静止几分钟后, Watch 正在离开环境模式(夜间我的首选模式)并关闭屏幕 .

我已经尝试过根据Android Wear: measuring sensors and preventing ambient mode / sleep使用唤醒锁但没有成功 . 处理器可能仍在工作,但屏幕在一段时间后变黑(调试非常麻烦,因为您总是需要等待并且无法在仿真器上重现,而仿真器永远不会关闭) .

那么如何防止 Watch 离开环境模式到“关闭”方向,或者至少检测到该状态并将其重新打开?

回答(1)

2 years ago

你的 Watch 可能 ro.ambient.plugged_timeout_min 设置为某个正值(请参阅reddit post here) . 这是为了保护OLED屏幕免受烧毁 . 如果你运行 adb shell dumpsys alarm ,你可以看到 com.google.android.wearable.ambient 的唤醒警报,其动作 com.google.android.wearable.action.STOP_AMBIENT_DREAM 将在上述超时后关闭屏幕/打瞌睡设备 .

我最好的猜测是,为了防止它进入环境,你需要

  • 阻止它完全进入环境,即持有 SCREEN_DIM_WAKELOCK 或类似物,并使用全黑背景 .

  • 定期唤醒屏幕,以便超时重置 . 如果它虽然是一个夜晚的话,这可能是次优的 .