gpt4 book ai didi

android - 前台服务和 WakeLocks 不适用于华为设备

转载 作者:行者123 更新时间:2023-12-05 00:05:25 31 4
gpt4 key购买 nike

我开发了一个名为 Multi Countdown Timer 的 Android 应用程序,我们可以在其中同时启动多个计时器。该应用程序使用前台服务在后台运行,以便持续运行并覆盖 Android 的 Doze 模式

我已经在三星 s6、A7、诺基亚 3.1、LG Nexus 5x 和一些模拟器上测试了我的应用程序。应用程序运行完美,定时器结束时唤醒。但另一方面,每当我在Huawei Devices (EMUI 8 Android Oreo 8.0.0) 上运行我的应用程序时,结果都不尽如人意。我面临的问题是当定时器完成时应用程序没有唤醒屏幕,当我打开我的设备时定时器完成时它会响起但没有自动唤醒屏幕,因为它正在工作其他设备。

我已经复制了这个应用Multi Timer StopWatch这个应用程序甚至在华为设备上也能正常运行。

这是我在 Manifest.xml 中的 Activity 。

           android:name=".view.alarm.AlarmActivity"
android:process="alarm.process"
android:screenOrientation="portrait"
android:showOnLockScreen="true"
android:showWhenLocked="true"
android:turnScreenOn="true"
android:theme="@style/splashScreenTheme" />

我就是这样称呼我的警报 Activity 的。

val alarmIntent = Intent(this@CountDownTimerForegroundService, AlarmActivity::class.java)
alarmIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
alarmIntent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
alarmIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT)
}
alarmIntent.putExtra(ALARM_PASSING_ID, timerObj.id)
startActivity(alarmIntent)

这是我的 onCreate 警报 Activity

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
window.addFlags(
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
or WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
or WindowManager.LayoutParams.FLAG_FULLSCREEN
or WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
or WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
or WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
or WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON
)

setContentView(R.layout.activity_alarm)

任何帮助将不胜感激。提前致谢。

更新:

1) 在华为设备上,我在 PowerManager 中将我的应用列入白名单并启用了电池优化后进行了测试,但它也没有帮助。

2) 我已经在我的前台服务中测试了一些唤醒锁,但仍然得到相同的行为。

3) 使用 Android AlarmManager 和 setExactAndAllowWhileIdle 仍然没有唤醒设备。

4) 二手 Don'tKillMyApp在唤醒锁中使用 LocationManagerService 标签的解决方案也没有帮助。

最佳答案

华为的EMUI有相当严格的电池管理政​​策。除了Battery Management中的权限,后台还有一个单独的由EMUI管理的白名单。

请引用我的回答; https://stackoverflow.com/a/61364065/5245066

关于android - 前台服务和 WakeLocks 不适用于华为设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59710956/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com