Flutter 使用Screen保持屏幕常亮不息屏

     有时候开发app可能会用到屏幕常亮,不让其息屏,比如你播放一个视频,你肯定不想突然间就跟随系统设置而息屏看不到视频了,所以务必要使用一些插件来控制屏幕的亮度和常亮。

    本人搜了好多,基本都是使用 wakelock 这个插件来实现不息屏操作,但是我用完以后没有管用,不知道是手机的问题,还是flutter版本的问题,后来找半天找到了一个可以使我手机正常使用不息屏的三方插件 Screen.

   Screen请使用最新的版本链接地址

   1. 使用方式如下,在pubspec.yaml里面导入,记得pub get

screen: ^0.0.5

    2. 在AndroidManifest.xml文件里面引入

<uses-permission android:name="android.permission.WAKE_LOCK" />

  3. Screen提供的方法如下

// Import
import 'package:screen/screen.dart';

// 获取屏幕亮度:
double brightness = await Screen.brightness;

// 设置亮度:
Screen.setBrightness(0.5);

// 检测屏幕是否常亮:
bool isKeptOn = await Screen.isKeptOn;

// 防止进入睡眠模式:
Screen.keepOn(true);

这里也讲解一下 wakelock,万一你们的可以用呢

1.添加到pubspec.yaml 文件

wakelock: ^0.6.2

2.在AndroidManifest.xml文件里面引入

<uses-permission android:name="android.permission.WAKE_LOCK" />

3.在页面引入和使用: 

import 'package:wakelock/wakelock.dart';

//使用
Wakelock.enable();
//不在使用
Wakelock.disable();

最后可根据个人需要酌情选择插件使用,喜欢的留个赞吧! 

Flutter应用中,要让页面始终保持屏幕常亮,你可以通过在 MaterialApp 或者具体的 Widget 树中添加一些特定的设置。这里是一个简单的示例: ```dart import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; // 引入flutter/services库 void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter App', theme: ThemeData(primarySwatch: Colors.blue), home: ScreenStayOnBrightScreen(), debugShowCheckedModeBanner: false, ); } } class ScreenStayOnBrightScreen extends StatefulWidget { @override _ScreenStayOnBrightScreenState createState() => _ScreenStayOnBrightScreenState(); } class _ScreenStayOnBrightScreenState extends State<ScreenStayOnBrightScreen> { bool isScreenLightOn = true; // 初始状态设为true,如果需要手动切换可以加上toggle开关 void toggleScreenBrightness() { SystemChannels.platform.invokeMethod<void>( 'setSystemUiAutoBrightness', isScreenLightOn ? "off" : "on"); setState(() { isScreenLightOn = !isScreenLightOn; }); } @override Widget build(BuildContext context) { return Scaffold( body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text('屏幕亮度'), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ RaisedButton( onPressed: () { toggleScreenBrightness(); }, child: Text(isScreenLightOn ? '关闭' : '开启'), ), ], ), ], ), ), ); } } ``` 在这个例子中,我们创建了一个自定义的Widget `ScreenStayOnBrightScreen`,它有一个按钮用于切换屏幕亮度。当用户点击按钮时,我们会使用`SystemChannels.platform.invokeMethod`调用系统原生API来改变屏幕亮度。 注意:不是所有的Android设备都支持屏幕常亮功能,有些设备可能会有权限限制。此外,长时间保持屏幕亮着会消耗更多电量,所以实际应用中应考虑提供相应的用户体验提示和电池管理策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A HandSome Man

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值