问题标签 [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.

0 投票
1 回答
196 浏览

android-service - Android 唤醒锁问题

我有前台服务。

清单包含以下权限:

在 Splash 活动中,我请求此权限一次:

在 onCreate 服务方法中,我调用 createAlarm 方法:

在所有初始化调用 setWakeLock 之后:

我对这些功能感到困惑,因此我没有醒来,请帮助我。

0 投票
0 回答
67 浏览

android - PARTIAL_WAKE_LOCK vs IGNORE_BATTERY_OPTIMIZATION vs 白名单,用于前台服务和后台服务

自从 Marshmallow 引入打瞌睡模式,以及 Oreo 引入的进一步限制后,在后台连续工作变得更加困难。我阅读了很多文章,建议使用 PARTIAL_WAKE_LOCK 和 IGNORE_BATTERY_OPTIMIZATION 能够在后台进行监控工作。

据我了解,启动 Marshmallow 都不能保持后台服务覆盖打瞌睡,因为它会在打盹期间暂停执行。启动奥利奥,如果应用程序关闭,后台服务将完全停止。但是,当使用前台服务以使其始终运行时,即使用户关闭屏幕,它们也会很有用。(如果我错了请纠正我)

有人可以清楚地解释每种方法之间的区别以及何时使用每种方法吗?

0 投票
1 回答
283 浏览

android - 未解决的参考:isIgnoringBatteryOptimization

我正在尝试检查我的应用程序是否忽略了电池优化,我必须强制用户允许该应用程序,我不想被 PlayStore 禁止,我看到一些参考资料说该权限是危险的。然后,直到现在,我正在从下面的代码中尝试这个“解决方案”。我在这里的文档中看到了参考isIgnoringBatteryOptimizations,但是在我的 Android 工作室中它给了我以下错误:

Unresolved reference: isIgnoringBatteryOptimization

我写的代码:

0 投票
0 回答
137 浏览

android - 应用备用存储桶不确认用户交互

我有一个 VOIP 应用程序,它在每次执行呼叫时使用高优先级推送通知。推送通知是消息通知,因为我想自己处理交互。当我收到推送时,我启动了一个前台服务,该服务开始收听 SIP 通信,然后打开一个用户与之交互的自定义​​呼叫屏幕(活动)。对于 android PI ACTION_MANAGE_OVERLAY_PERMISSION,即使从服务中我也可以随时打开呼叫屏幕。

我相信发生的事情是备用存储桶没有检测到用户与此流的交互,因为我的高优先级消息被限制了。从 FCM 诊断中,我可以看到推送通知会发送到手机,但不会广播到应用程序本身。

将手机置于此状态时,我也可以毫无问题地复制它:

如何确保打开的活动算作用户交互,或者如果这不可能,如何更改流程以使其工作但仍打开自定义呼叫屏幕活动?

0 投票
0 回答
27 浏览

android - Android 设备不会以编程方式打开

我们编写了一个测试应用程序,通过使用我们自己的源代码重现问题,尝试与第三方一起调试问题。

该应用程序具有一项功能,可让我们设置设备关闭然后打开的时间。这是为了符合绿色节能政策。

该应用程序可以很好地关闭设备,但在打开时,我们会在预期的时间听到“咔哒”声,但显示屏仍然关闭。我们编写了一个测试应用程序,发现这在其他 Android 设备上运行良好,但在问题设备上我们得到了相同的结果 - 只是电源继电器的点击声,但没有别的。

我们想知道这是否与控制此行为的设备上的系统设置有关。

开启代码如下:

0 投票
0 回答
68 浏览

android - Android 12 电池优化

我正在尝试检查 Android 12 是否正在优化我的应用程序电池使用情况,因此我使用 了 isIgnoringBatteryOptimizations方法( https://developer.android.com/reference/android/os/PowerManager#isIgnoringBatteryOptimizations(java.lang.String))。但是isIgnoringBatteryOptimizations返回一个布尔值yes,它已经过优化,而 Android 12 有 3 级优化(查看截图):

  1. 不受限制
  2. 优化
  3. 受限制的

我的应用程序在 1 和 2 的情况下工作正常,如果它处于受限模式,我想显示警告。

在此处输入图像描述