Flutter如何使用wakelock_plus插件

我在Flutter项目中需要使用wakelock_plus插件来保持屏幕常亮,但不太清楚具体怎么实现。按照官方文档添加依赖后,应该怎么在代码中调用?是否需要特殊权限?在Android和iOS上是否需要不同的配置?另外这个插件和原版wakelock有什么区别,为什么推荐用plus版本?求一个完整的使用示例代码。

2 回复

在Flutter中使用wakelock_plus插件:

  1. 添加依赖到pubspec.yaml
dependencies:
  wakelock_plus: ^1.0.0
  1. 导入包:
import 'package:wakelock_plus/wakelock_plus.dart';
  1. 启用/禁用屏幕常亮:
// 启用
WakelockPlus.enable();

// 禁用  
WakelockPlus.disable();

// 检查状态
bool enabled = await WakelockPlus.enabled;

适用于视频播放、导航等需要保持屏幕亮起的场景。

更多关于Flutter如何使用wakelock_plus插件的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中使用wakelock_plus插件可以防止屏幕休眠,适用于视频播放、导航等场景。以下是详细步骤:

1. 添加依赖pubspec.yamldependencies 中添加:

dependencies:
  wakelock_plus: ^1.0.0

运行 flutter pub get 安装。

2. 基本用法

import 'package:wakelock_plus/wakelock_plus.dart';

// 启用屏幕常亮
WakelockPlus.enable();

// 禁用屏幕常亮
WakelockPlus.disable();

// 检查当前状态
bool isEnabled = await WakelockPlus.enabled;

3. 完整示例

import 'package:flutter/material.dart';
import 'package:wakelock_plus/wakelock_plus.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Wakelock Demo')),
        body: Center(
          child: Column(
            children: [
              ElevatedButton(
                onPressed: WakelockPlus.enable,
                child: const Text('保持屏幕常亮'),
              ),
              ElevatedButton(
                onPressed: WakelockPlus.disable,
                child: const Text('关闭屏幕常亮'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

4. 注意事项

  • Android需要权限(自动处理)
  • iOS无需额外配置
  • 推荐在dispose中禁用:
@override
void dispose() {
  WakelockPlus.disable();
  super.dispose();
}

该插件是wakelock的升级版,支持空安全,用法与旧版基本一致。

回到顶部