问题标签 [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 - 为什么持有 PARTIAL_WAKE_LOCK 会导致随机系统崩溃?
我有一个应用程序在启动时持有 PARTIAL_WAKE_LOCK,然后释放 onDestroy。当设备被单独放置/屏幕变暗时,它会在 40 分钟 - 2 小时后随机崩溃。
经过一些调查,我发现释放唤醒锁 onPause 可以阻止此问题的发生。但是,这是不希望的,即使屏幕关闭,我也希望锁定保持打开状态。
谁能告诉我是否必须在暂停时释放唤醒锁?或者任何其他建议都会有所帮助。
基本实现:
android - 在整个 Android 系统中使用 FLAG_KEEP_SCREEN_ON
我的应用程序的目标是在整个Android
系统中保持屏幕开启。以前,我为此使用了 FULL_WAKE_LOCK,它允许我阻止整个系统的屏幕变暗。然而,从 API Level 17 开始,它就被弃用了:
此常量在 API 级别 17 中已弃用。大多数应用程序应使用 FLAG_KEEP_SCREEN_ON 而不是这种类型的唤醒锁,因为当用户在应用程序之间移动时它将由平台正确管理并且不需要特殊权限。
官方文档建议使用FLAG_KEEP_SCREEN_ON,但也可以仅将其用于特定的Activity
.
我仍然会FULL_WAKE_LOCK,但是我发现它现在在某些设备上不起作用,例如 MediaPad Huawei x2、Redmi Note 3 等。我目前使用的PowerManager
方式可以在 GitHub 上找到。之后有没有更好的方法来完成这项任务API level 17
?
android - 对于华为设备,isPowerSaveMode() 始终返回 false
我目前正在实施一项功能,要求用户忽略应用程序的电池优化。这样做的原因是,不幸的是,应用程序的主要功能受到省电模式的严重影响。
为了实现我的目标,我通过创建一个Intent
并将其设置为Action
来提示用户ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
。
虽然,在触发之前Intent
,我会检查isPowerSaveMode()
并isIgnoringBatteryOptimizations()
确保在未启用省电模式时不提示用户;这是该功能的要求。我这样做的方法是:
这适用于大多数设备,但对于华为设备,isPowerSaveMode()
总是返回false
。因此,由于先决条件失败,因此永远不会显示提示。
有没有其他人可能遇到过这个问题?如果是这样,你做了什么来解决它?
Xamarin.Android
请注意, SDK中也存在相同的问题。
android - 不推荐使用 WakefulBroadcastReceiver
为了创建一个接收器,我WakefulBroadcastReceiver
在我的旧项目中进行了扩展。但现在是deprecated
。WakefulBroadcastReceiver
而不是Receiver
我现在应该使用的以及如何用新方法转换下面的代码?
这是我的代码:
android - 如何在设备休眠时唤醒设备
我已经在 SO 上阅读了很多关于这个主题的内容。我正在尝试编写 SIP 客户端,它当然应该在设备睡眠时接受来电。我尝试的第一件事是在我的onCreate
方法中使用这些标志:
我的设备(不同型号的手机和不同的 API 级别)只有在使用 USB 电缆插入PC或正在充电时才会唤醒。拔下电话时,没有标志的影响。然后我发现一个人已经在 SO: Android - Wake Up and Unlock Device上问了一个类似的问题,没有人回复他,过了一段时间他找到了他的问题的答案并发布了它。答案是使用PowerManager类。他的回答对我帮助很大,但 PowerManager 的文档说“使用此 API 会显着影响设备电池寿命”
. 我自己也感觉到了。我的应用程序开始使用过多的电池能量。我将我的应用程序与 WhatsApp 进行了比较,发现电池能量的使用存在巨大差异。
那么,有没有其他方法可以在设备休眠时唤醒设备,或者
有人知道这个过程在 WhatsApp、Skype 和其他接收来电并节省电池寿命的应用程序中是如何工作的?
android - 唤醒锁 + 处理程序是否允许设备保持唤醒状态?
我目前正在开发一个使用 Handler & WakeLock 每 30 分钟启动一次活动的应用程序。但我想知道这种方法的可靠性。我确实检查了这篇文章,但它似乎没有回答我的问题。这是我用来保持服务活跃和运行的代码:
这有多可靠?我将它与WakefulBroadcastReceiver
. 到目前为止,它可以与我测试过的三款设备一起使用,包括三星 Galaxy Note 5、谷歌 Pixel XL 和 Nexus 6P。
我发现这会消耗大量电池。有更环保的解决方案吗?
debian - 未检测到电池,power_supply 和 acpi 目录为空
没有检测到电池。没有解决方案的论坛。我编辑了 grub 以强制 acpi,但我在 proc/acpi/battery 或 /sys/class/power_supply 中没有列出任何内容。我重新安装了不同的发行版、发行版、桌面环境,但都没有成功。kali 2018.1(仅限 LXDE)是唯一可以让声卡和无线卡同时工作的内核(4.14)/发行版组合。在任何分布上均未检测到电池。如果你能帮我搞定,越过“kali”这个词,把更多的精力放在固件上,那就太棒了。
史诗 ell1401
我知道笔记本电脑的质量。感谢您的帮助。
java - 我们应该在单独的线程中调用 PowerManger 的重启方法吗?
我需要以编程方式重启安卓设备,PowerManager 的reboot
功能就派上用场了。
我的问题是:
应该reboot
在单独的线程中调用还是可以在同一个线程中调用它?
audio-streaming - 进入睡眠模式后禁用 Wifi(空闲)
我正在构建一个音频流应用程序,用户应该能够在设备锁定时收听他们的歌曲(就像任何其他音乐应用程序一样)。
一些用户报告了在 WIFI 上播放 10 到 15 分钟后停止播放的问题。在所有情况下,设备都已手动锁定或进入睡眠模式。我能够在运行 Android 8.1 的 Pixel 2 和运行 8.0 的模拟器上重现此问题。一些使用运行 8.1 的诺基亚和运行 7.0 的 LG 的用户也遇到了同样的问题。使用移动网络 (4g) 收听时不会发生此问题。
重现此问题的步骤如下。- 开始播放歌曲;- 将应用程序置于后台;- 锁定设备并等待播放停止;
调试应用程序我可以看到我收到"java.net.SocketTimeoutException: failed to connect to [address]/[IP] (port 80) from /[local IP] (port 38149)"。我假设在设备进入睡眠模式后由于某种原因 wifi 被断开(但仍然启用),并且在播放每个曲目之前我无法执行我需要的 HTTP 请求。HTTP 请求由 MediaPlayer 完成侦听器触发并在不同的线程上运行。我没有使用 JobScheduler 或 AlarmManager。
一切都在前台服务上运行,该服务向用户显示持久通知(媒体控件)。
创建服务时,我还设置了 Wifi Lock 和 Wake Lock。还要在播放每首曲目之前检查是否已锁定锁定以确保。
我也尝试设置 MediaPlayer 唤醒模式,但没有任何改变。
我能够通过使用 ADB 在模拟器上重现这一点。
还使用“dumpsys”检查 WIFI 状态
如我们所见,Wifi Lock 仍然处于活动状态。我还确认唤醒锁也处于活动状态。如果我没记错的话,即使设备进入睡眠模式,“mSleepPolicy 2”也应该让 Wifi 保持活跃。
我不想在电池优化面板上将该应用程序列入白名单。我可以看到其他流媒体应用程序,如 Spotify,已经过优化,并且在设备锁定时流媒体没有问题。
我错过了什么吗?