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

Android防止锁屏:Xamarin开发CCTV应用需实现屏幕多日常亮

解决Xamarin Android CCTV应用屏幕自动熄灭的问题

你当前使用的WakeLockFlags.Partial仅能保持CPU持续运行,无法维持屏幕常亮,这就是运行一天后屏幕熄灭的原因。以下是两种实现屏幕长期常亮的方案:

方案一:使用Window标志(推荐,无需权限)

在Activity的OnCreate方法中添加以下代码,系统会自动在Activity处于前台时保持屏幕常亮,无需申请额外权限,且更符合Android系统规范:

protected override void OnCreate(Bundle savedInstanceState)
{
    base.OnCreate(savedInstanceState);
    // 保持屏幕常亮
    Window.AddFlags(WindowManagerFlags.KeepScreenOn);
    // 其他初始化代码...
}

方案二:使用WakeLock(需权限)

如果必须通过WakeLock实现,需将锁类型改为ScreenBright,同时申请对应权限:

  1. 在AndroidManifest.xml中添加WAKE_LOCK权限:
<uses-permission android:name="android.permission.WAKE_LOCK" />
  1. 修改WakeLock初始化代码:
lockctl = ((PowerManager)GetSystemService(Context.PowerService)).NewWakeLock(
    WakeLockFlags.ScreenBright | WakeLockFlags.AcquireCausesWakeup, "CCTV:ScreenLock");
lockctl.Acquire();

注意:WakeLockFlags.Full在Android 7.0(API 24)及以上已被弃用,优先使用ScreenBright。

额外注意事项

  • 部分厂商的省电模式会强制触发屏幕休眠,需引导用户关闭应用对应的省电策略;
  • CCTV应用通常保持前台运行即可满足需求,若需后台维持屏幕常亮,需结合前台服务实现,但这并非常规场景。

内容的提问来源于stack exchange,提问作者나현수

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 19:46:01