问题标签 [wakelock]

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.

0 投票
2 回答
4723 浏览

android - 允许手机在屏幕关闭时振动

我正在寻找一种方法来让我的程序在屏幕因超时而关闭后使手机振动。我做了很多研究,并没有找到有效的方法。我已经查看了 PowerManager 类,更具体地说是 WakeLock 机制。从许多帖子的声音来看,我需要使用 WakeLock 类的 PARTIAL_WAKE_LOCK 变量。

PARTIAL_WAKE_LOCK - 确保 CPU 正在运行的唤醒锁。

但是,当屏幕关闭时,我无法让它振动手机。我知道我正确使用了 WakeLock,因为我可以让 SCREEN_DIM_WAKE_LOCK 工作。PARTIAL_WAKE_LOCK 是我要找的吗?

0 投票
3 回答
499 浏览

android - 检测应用程序何时保持屏幕开启

我正在编写一个主要通过状态栏通知与用户交流的 Android 应用程序。但是,如果他/她没有真正直接与他们的手机交互,我不想打扰用户。例如,如果用户正在使用导航应用程序或看电影。我认为所有(或大多数)这类应用程序之间的共同点是它们保持屏幕打开。我相信应用程序可以通过使用 WakeLock 或通过在其活动上指定 keepScreenOn 参数来保持屏幕开启,可能还有其他方法。

我想知道,在我要显示通知之前,我是否可以检查另一个应用程序是否保持屏幕打开,这样我就可以避免打扰用户。我想涵盖所有选项。我可以看到 WakeLock 有一个 isHeld() 方法,但它会检测到其他方法吗?

谢谢,

0 投票
2 回答
7304 浏览

android - Android GPS 跟踪和唤醒锁

我需要在 Android 手机上进行后台 GPS 跟踪,我目前计划有两种情况:

  1. 当手机连接到(车载)充电器时,获取频繁的 GPS 位置(每分钟)。
  2. 当手机未连接充电器时,仅每 5-30 分钟轮询一次位置,具体取决于电池受影响的程度。

我知道我需要在服务中实现跟踪,并且可能会显示通知以保持服务处于活动状态。但是,我认为手机可能随时进入睡眠模式,这将停止 GPS 跟踪。

对于这些场景,在不让手机进入睡眠状态且不会消耗太多电量的情况下,进行持续的后台 GPS 跟踪的最佳方法是什么?

到目前为止,我收集了以下内容:

对于场景 1,我可能需要获取 WakeLock,并始终保持 CPU 唤醒(但屏幕可能会休眠)。MyTracks 应用程序似乎在TrackRecordingService中执行此操作。OpenGPSTracking 似乎也是如此

对于场景 2,我可以使用 AlarmManager 安排每 x 分钟检查一次。我的服务需要获取一个临时的 WakeLock,等待一个 GPS 位置,然后停止并再次释放 WakeLock。

这两种方法(永久 WakeLock 与 AlarmManager)的功耗比较如何?如果每 30 分钟检查一次,GPS 能否在合理的时间内接收到准确的位置?

StackOverflow 上有一些相关的问题,但没有一个令人满意的答案。一些半有用的:

0 投票
1 回答
210 浏览

android - 多个类,onCreate 保存的实例问题

好的,这么快的解释。我有一个包含 3 个文件的应用程序。

Main.java、License.java、App.java

举个例子。除了我要问的内容外,这个应用程序确实 100% 运行。这个应用程序确实包含一个网络视图,问题就在这里。我进行了研究,大多数内容都指向方向变化。我的方向没有问题,因为我现在强制横向。我在手机进入睡眠状态时遇到问题。

当它唤醒时,它会在 webview 中重新加载页面。我可以为此添加一个锁,但如果有人手动锁定他们的手机,然后解锁它,它会是相同的响应。或者如果强制唤醒在应用程序中,您可以手动锁定它吗?我想我需要测试那个。

无论如何,我猜 saveinstancestate 会记住 webview 中的位置并重新加载到它?如果是这样,它会进入哪个 oncreates ?

Main 在第一次打开时启动,这个调用许可证,如果它通过它然后打开应用程序

0 投票
1 回答
802 浏览

android - 使用 contentobserver 的睡眠服务

我创建了一个托管 ContentObserver (C) 的服务 (S)。C 跟踪一些数据并记录对数据库所做的更改 (D)。

S 也有一个计时器,它按时间间隔将 D 的内容转储到文件中。

我的服务在我的手机上运行,​​一段时间内一切似乎都很好(几个小时左右)。然后突然停止记录对数据所做的更改并停止转储到文件。我尝试更改数据(在 C 上引发 onChange)并在手机中浏览以保持设备处于唤醒状态,但什么也没发生 - 服务仍然处于非活动状态。S 仍在运行,当我连接到笔记本电脑时,我在日志中看不到任何错误。

我的猜测是服务正在休眠(没有 CPU 切片)。我读过一些关于唤醒锁的文章,但我不想强迫手机一直处于唤醒状态。()。另一种方法是创建一个重复警报,每 T 分钟执行一次 C 的工作(轮询)。我更喜欢 ContentObservers 的想法,因为用户可以在更新之间更改(尤其是删除)数据。使用 ContentObserver,我将获得所有更改,而不仅仅是定时间隔的快照。

关于如何定期唤醒我的服务的任何想法?

最好的问候弗雷德里克

0 投票
3 回答
41554 浏览

android - 如何禁用电源按钮?

是否可以覆盖android电源按钮的功能?我想“禁用”电源按钮。我的计划是覆盖此按钮的功能以不执行任何操作({};)我的主要想法是禁用关闭屏幕。

我希望当有人按下电源按钮时不会发生任何事情。

我怎样才能做到这一点 ?

0 投票
3 回答
7389 浏览

android - Android: Keep camera-LED on after screen turns off

since i'm at the beginning with Android coding i hesitated to post my question, but now i'm at the point where i can't resist.

I have a service which turns on the camera-LED onCreate:

I can tell that the WakeLock acquires, I tested with FULL_WAKE_LOCK and it didn't turn off considering Screen Time-Out. But since the Screen isn't need to be on I don't want to use the full wakelock.

The Cyanogenmod for my phone (HTC Legend) brings an torch-app which can do what i want. Its source code is here:
https://github.com/CyanogenMod/android_packages_apps_Torch/tree/gingerbread/src/net/cactii/flash2
I noticed that the light turns off for a short moment with that app, if this is a hint for someone, obviously not for me ;(

I don't expect someone to change my code to do what i want but I'd be thankful if anyone could point me in the right direction!

Greets
SJ

0 投票
1 回答
1323 浏览

android - WakeLock 似乎没有按计划工作

当应用程序发送通知时,我正在尝试打开屏幕。目前,当我acquire使用WakeLock它时,它会非常快速地闪烁,几乎不明显。据我所知,我的标志设置正确。AQUIRE_CAUSES_WAKEUP打开屏幕并ON_AFTER_RELEASE戳用户活动计时器)在我释放它后将其保持打开状态 - 否则,我理解它会立即自行关闭......有人有见识吗?

0 投票
2 回答
3229 浏览

android - android什么时候会在没有唤醒锁的情况下停止它的cpu?

我知道android使用唤醒锁来保持cpu运行或屏幕开启。很明显,屏幕唤醒锁可防止用户活动计时器在用户一段时间不活动后关闭屏幕。

但我想知道cpu唤醒锁究竟什么时候会生效。

1.如果我创建一个新线程并在没有任何唤醒锁定的情况下在后台持续消耗cpu,关闭屏幕不会停止它。它会停止,什么时候停止?

2. Timer.schedule() 调度的线程怎么样?

3.它会导致另一个问题,如果我在服务中保持一个长套接字连接,它在 socket.read() 处被阻塞。当套接字从远程接收任何数据时,我是否必须获取唤醒锁以确保服务将被唤醒?

谢谢。

0 投票
4 回答
9046 浏览

android - 将应用程序放在前面,打开显示并从 AlarmManager 解锁?

当我设置的闹钟激活时,我想打开显示屏、解锁手机并将我的应用程序放在前面。

我的 CountDownTimer 的振动器已激活,但显示屏无法打开...

在旁注中,我想播放“积极”警报声。我该怎么做呢?