0

我已经在 SO 上阅读了很多关于这个主题的内容。我正在尝试编写 SIP 客户端,它当然应该在设备睡眠时接受来电。我尝试的第一件事是在我的onCreate方法中使用这些标志:

Window window = this.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

我的设备(不同型号的手机和不同的 API 级别)只有在使用 USB 电缆插入PC或正在充电时才会唤醒。拔下电话时,没有标志的影响。然后我发现一个人已经在 SO: Android - Wake Up and Unlock Device上问了一个类似的问题,没有人回复他,过了一段时间他找到了他的问题的答案并发布了它。答案是使用PowerManager类。他的回答对我帮助很大,但 PowerManager 的文档说“使用此 API 会显着影响设备电池寿命”
. 我自己也感觉到了。我的应用程序开始使用过多的电池能量。我将我的应用程序与 WhatsApp 进行了比较,发现电池能量的使用存在巨大差异。
那么,有没有其他方法可以在设备休眠时唤醒设备,或者
有人知道这个过程在 WhatsApp、Skype 和其他接收来电并节省电池寿命的应用程序中是如何工作的?

4

1 回答 1

0

您可以使用-

android:showOnLockScreen="true"

在您的清单文件和您希望出现在屏幕锁定上的活动中。

于 2017-12-08T07:20:11.940 回答