问题标签 [android-powermanager]
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.
android - 强制Android手机睡眠,以进行测试?
我正在编写一个依赖于网络活动的 android 应用程序,并且警报管理器有时会将手机从睡眠状态中唤醒。
我的问题是如何在设备上可靠地测试它?理想情况下,如何强制手机进入完全睡眠状态。如果做不到这一点,我怎么能确定手机何时完全进入睡眠状态?
您如何测试您的警报管理器/唤醒锁定/睡眠处理代码?
android - Service goes to standby when device sleeps - Android
Envrionment: Eclipse
Language: Java (Android)
I have a bit of a problem, which I didn't realise until I tested my application out on a device. I always thought that services would continuously be running in the background, even when the phone's sleeping. I found out that this is not the case, so, my question is that does the service start up again once you wake your device up? And if not, how would I cause the service to start-up again.
Would I be able to wake the phone every 5 minutes or so, just to run my service, which will last 30 seconds to 1 minute. And then make the phone sleep again?
Thanks in advance.
EDIT: I am very new to Android programming and would really appreciate if someone would tell me how to use WakefulIntentService. I have a service that is searching for the user's GPS Location every so often, and when the phone goes to sleep, I want my service to still look for their location. How would I go about using the WakefulIntentService for this? And would I be able to use it in this scenario.
Thanks.
android - 安卓设备什么时候进入睡眠模式?
我正在搜索 SO 和网络,但我找不到针对我的特定问题的足够答案。好的,我们开始:
每个用户都可以在 android 上修改屏幕超时。(当屏幕空闲 __ 秒/分钟时关闭 - 用户选择)。但用户只能修改屏幕超时,而不是在设备实际进入睡眠状态时。我在这里发现了设备进入睡眠状态时会发生什么:(CommonsWare 的回答非常好)Android 睡眠/待机模式
好的,我的问题很简单。我怎么知道我的手机什么时候进入睡眠状态?关屏后会立即进入睡眠状态吗?屏幕关闭后它会保持“清醒”一段时间吗?最重要的是:特定设备的睡眠模式是否因品牌设备而异(制造商如何实现这一点)还是取决于 ROM 版本(例如,所有 ICS 供电的设备将在屏幕关闭 X 秒后进入睡眠状态)?
android - android在睡觉时可以听什么?
我找不到设备睡眠时可以收听的事件列表。
例如,可以在 sleep 时使用LocationListener。
我的目标是通过以下至少一种方法检测用户何时在他的车里,然后唤醒手机:
- 汽车底座上的 NFC 标签
- 范围内支持蓝牙的汽车收音机
但如果失败了,我对想法持开放态度。
谢谢
android - 锁定 Android 设备屏幕并阻止用户解锁它
我正在使用应阻止用户在某些情况下使用手机的 Android 应用程序。所以我尝试锁定我使用 PowerManger goToSleeo() 方法的屏幕,但它需要 DEVICE_POWER 权限。这仅适用于系统应用程序,但我的应用程序不是系统应用程序我该怎么办?
这是我的代码
android - 使用唤醒锁(最大限度地减少电池使用)处理传入短信的正确方法
让我首先承认我正在学习(或努力学习)Android,同时也在做一些看起来有些挑战性的事情。
虽然我认为我已经了解了 BroadcastReceivers 的基本用法,并且我可以使用它来接收 SMS 并进行一些处理,但我希望即使在设备进入睡眠状态时也能进行这种处理。阅读并提出一个问题(这个),我知道我需要获取部分唤醒锁(以保持 CPU 处于活动状态,而屏幕+键盘处于睡眠状态),以处理传入的 SMS 请求,就像主消息应用程序(或者说环聊或其他一般消息应用程序),可以接收传入的 SMS 并闪烁通知 LED 并振动(如果配置为这样做)。
但是,我感到困惑的是以下几点:
- 有工作要做的时候需要获取唤醒锁,没有工作要做的时候释放。如果获取了唤醒锁并且从未释放,您会更快地耗尽电池电量。
- 如果上述情况属实,那么如何期望短信阅读应用程序立即收到传入消息的通知(可能使用广播接收器),而不必永久获取唤醒锁?
- 我想到的一种方法是,使用一个大部分时间都在休眠并且只定期唤醒的服务来检查是否有任何短信。然而,这与传入的 SMS 及其相应的广播意图可能随时发生的逻辑相反,显然有足够的机会让应用程序错过广播。
那么,如何开发一个应用程序:
- 绝不会错过任何传入的短信,并希望在它到达时立即得到通知(即使设备处于休眠状态)
- 消耗最少的电池,特别是因为 SMS 广播意图的处理非常小且简单……计算量最少。
编辑(2014 年 9 月 12 日)
虽然我已经接受了答案,但我想补充一下我的理解,尽管我仍然不能 100% 确定我的理解是正确的。
我的理解是,在低级别(操作系统、固件和设备硬件)中,在 Android 设备中,当设备进入睡眠状态时,有多个事件可能导致它“唤醒”。网络事件、键盘事件、一些(如果不是全部)传感器事件、定时器事件等会导致设备快速唤醒处理事件,并尝试最好尽快回去睡觉。据我了解,最后一点是关键。这意味着,诸如来电、传入 SMS、按键或其他导致广播 Intent 的原因的事件,总是会导致生成一个 Intent 并将其传递给所有已注册的 BroadcastReceiver。这部分是有保障的。但是,不能保证所有的 BroadcastReceiver 都会有足够的时间来花费他们需要的时间来处理 Intent。相反,他们需要获取唤醒锁(适当类型的)并确保设备在唤醒锁被释放之前不会重新进入睡眠状态。现在,我意识到,有多种获取唤醒锁的方法。它可以直接在 BroadcastReceiver 中完成,但对于管理它的最佳和最有效方法显然并不总是直观,st 它被保留的时间最少,并在不需要时立即释放。为此,SDK 提供了“WakefulBroadcastReceiver”机制,使得编写处理 BroadcastIntent 的软件的任务在需要保持唤醒锁时变得更简单。然后是由 CommonsWare 开发的名为 WakefulIntentService 的替代方案(除非我没记错,它不是来自 SDK,而是来自第 3 方)。
我希望我是对的:)
编辑(2014 年 9 月 13 日)
此 SO Q&A中提供了更多信息
android - 如何从睡眠中调用android设备?
在我的应用程序中,我必须在进入睡眠模式 5 秒后启用设备。我尝试了不同的方法,例如
但它不起作用。任何人请帮忙。提前致谢。
android - android.os.PowerManager 中的内存泄漏
我已经确定了内存泄漏,来自 Eclipse Memory Analyzer 的以下报告
我根本不在我的代码中使用 PowerManager。它怎么能引用我的班级?PieChartView 有很大的位图并导致我的内存泄漏。
编辑:我在 android 4.4.2 设备上观察到这个问题。检查 android 4.4.3 更改日志,我看到了,Power Manager display wakelock fix
但我无法找到更多详细信息,修复了什么以及该错误的症状。
android - 有没有办法获得 CMOS 状态?
我想知道,1)有没有办法在android(特别是在Sumsung)中访问CMOS Battery的状态?
或者
2) 是否有任何 API 或某些类/方法可以访问 CMOS 电池?
我没有找到关于这个主题的任何东西......
感谢你们 !
android - KeyguardManager 无法解锁 kitkat 屏幕
我注意到我无法解释的 Android 非常有趣的行为。我正在使用以下代码唤醒手机并禁用键盘保护:
想象一下唤醒(以编程方式)->禁用键盘保护(以编程方式)->按电源按钮(手动)->唤醒->禁用键盘保护的循环。这个循环很好,直到我在手机的键盘保护被禁用时手动按下主页按钮。之后,手机确实会唤醒,但键盘保护不再以编程方式禁用。我会很感激任何想法!