我的应用程序的目标是保持整个Android
系统上的屏幕。以前,我已经使用FULL_WAKE_LOCK这个,它允许我在整个系统中屏蔽调光。然而,由于API等级17,它被认为是过时:在整个Android系统中使用FLAG_KEEP_SCREEN_ON
这个常量是在API层面弃用17.大多数应用程序应该 使用FLAG_KEEP_SCREEN_ON,而不是这种类型的唤醒锁的,因为它会 被正确地管理平台,因为用户在 应用程序之间移动并且不需要特殊许可。使用FLAG_KEEP_SCREEN_ON
Official documentation recommends,但它是可以使用它只有在特定的Activity
。
我仍然FULL_WAKE_LOCK,但是我发现它现在不能在一些设备上工作,比如MediaPad Huawei x2,Redmi Note 3等。我目前使用PowerManager
的方式可以找到on GitHub。在API level 17
之后有没有更好的方法来完成这项任务?
我所知道的'Doze'模式,并保持后台服务实际上是目前我在做什么,但不幸的是这在某些设备上不起作用。你可以在这里查看我的实现:https://github.com/yyunikov/android-dim-block/blob/master/src/main/java/com/yyunikov/dimblock/service/DimBlockService.java#L31 –
我添加了一个请注意,您的Notificaction类应调用builder.setOngoing(true); ... 我认为。 –