You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter始终显示(AOD)功能失效问题求助

解决锁屏后黑屏显示名言的类AOD功能问题

以下是针对功能失效问题的具体排查和解决方向:

  • 权限配置检查
    确保已申请并授予必要权限:

    • 动态申请SYSTEM_ALERT_WINDOW(悬浮窗权限),Android 10+需引导用户到系统设置开启该权限
    • 申请WAKE_LOCK权限,用于维持屏幕低功耗唤醒状态
    • Android 12+需注意适配AOD相关专属权限,同时在Manifest中声明对应权限标签
  • 窗口层级与标志设置
    创建显示名言的窗口时,必须配置正确的窗口类型和标志:

    • 窗口类型设为TYPE_KEYGUARD_OVERLAY(Android 10+)或TYPE_APPLICATION_OVERLAY,确保能在锁屏上层显示
    • 添加窗口标志:FLAG_SHOW_WHEN_LOCKED、FLAG_KEEP_SCREEN_ON、FLAG_TURN_SCREEN_ON,保证锁屏黑屏状态下窗口可见
  • 锁屏状态监听逻辑
    替换静态广播为动态注册广播(Android 8+静态广播受限),监听ACTION_SCREEN_OFF、ACTION_SCREEN_ON广播:

    • 收到ACTION_SCREEN_OFF时,启动悬浮窗口显示名言
    • 收到ACTION_SCREEN_ON或ACTION_USER_PRESENT时,销毁悬浮窗口
  • Doze模式适配
    若设备进入Doze模式,后台操作会被限制,需申请REQUEST_IGNORE_BATTERY_OPTIMIZATIONS权限,引导用户将应用加入电池优化白名单,避免锁屏后应用被系统休眠

  • 代码细节排查
    检查代码中的以下关键点:

    • 窗口初始化时是否正确设置了LayoutParams的type和flags参数
    • 权限申请流程是否完整,是否处理了用户拒绝权限的分支
    • 广播接收器是否正确动态注册,且在应用退到后台时未被系统回收

内容的提问来源于stack exchange,提问作者Alexandru M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 10:32:03