乐于分享
好东西不私藏

鸿蒙Flutter插件精选:wakelock_plus_ohos

鸿蒙Flutter插件精选:wakelock_plus_ohos

插件介绍

wakelock_plus_ohoswakelock_plus[1] 在 OpenHarmony(鸿蒙)平台的实现,由 HarmonyCandies[2] 社区维护。

wakelock_plus 是一个跨平台的 Flutter 插件,用于保持设备屏幕常亮,防止应用在使用过程中自动息屏。在鸿蒙设备上有了 wakelock_plus_ohos 的支持,你的 Flutter 应用也能无缝控制屏幕唤醒状态。

安装

pubspec.yaml 中添加依赖:

dependencies:
  wakelock_plus: 1.1.4
  wakelock_plus_ohos: ^0.0.3

注意: wakelock_plus_ohos 只是平台实现,核心 API 在 wakelock_plus 包中,所以两个都要添加。

使用

1. 启用屏幕常亮

import 'package:wakelock_plus/wakelock_plus.dart';

// 保持屏幕常亮
await WakelockPlus.enable();

2. 关闭屏幕常亮

// 恢复自动息屏
await WakelockPlus.disable();

3. 切换屏幕常亮状态

// 通过布尔值控制
bool enable = true;
await WakelockPlus.toggle(enable: enable);  // 启用

enable = false;
await WakelockPlus.toggle(enable: enable);  // 禁用

4. 查询当前状态

// 获取当前是否处于常亮状态
bool isEnabled = await WakelockPlus.enabled;

完整示例

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

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  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_plus_ohos')),
        body: Center(
          child: ElevatedButton(
            onPressed: () async {
              bool isEnabled = await WakelockPlus.enabled;
              if (isEnabled) {
                await WakelockPlus.disable();
              } else {
                await WakelockPlus.enable();
              }
            },
            child: const Text('切换屏幕常亮'),
          ),
        ),
      ),
    );
  }
}

引用链接

[1]wakelock_plus: https://pub.dev/packages/wakelock_plus

[2]HarmonyCandies: https://github.com/harmonycandies