如何在Flutter中防止应用锁屏?
是否有一个标志可以开启或关闭?Flutter SDK 是否公开了这个功能?
类似于
keepAwake(true);
这样的东西。keepAwake(true);
这样的东西。注意:此套件 wakelock 与其他套件存在一些依赖冲突。请使用 wakelock_plus 替代。点击 参考。
由于 screen 插件 的支持已经停止,并且现在有一些问题,您可以使用 wakelock
。
全面披露:我是此插件的作者,然而,它基本上是从 screen
插件中移植了 wakelock 功能并修复了问题:
import 'package:wakelock/wakelock.dart';
// To keep the screen on:
Wakelock.enable(); // or Wakelock.toggle(on: true);
// To let the screen turn off again:
Wakelock.disable(); // or Wakelock.toggle(on: false);
我找到了一个能完成任务的插件。 https://pub.dartlang.org/packages/screen
import 'package:screen/screen.dart';
// Prevent screen from going into sleep mode:
Screen.keepOn(true);
您还需要为Android设置权限。
<uses-permission android:name="android.permission.WAKE_LOCK" />
这个包可以完成以下工作: https://pub.dev/packages/wakelock
它依赖于Flutter的Wakelock类。
权限 在任何平台上,wakelock插件都不需要任何权限。 这是因为它只启用屏幕唤醒锁定,而不启用任何部分(CPU)唤醒锁定,这将使应用程序在后台保持活动状态。
如何使用?
// to enable the Android and iOS wakelock
Wakelock.enable();
// to disables the wakelock again.
Wakelock.disable();
import 'package:flutter/material.dart';
import 'package:wakelock/wakelock.dart';
void main() {
runApp( MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
Wakelock.enable(); // Here :)
return MaterialApp(
home: MyHomePage(),
);
}
}
正如@creativecreatorormaybenot已经回答的那样,您可以使用wakeLock来保持屏幕常亮。但我想补充一下在哪里放置。 这是一个代码片段,说明我如何使用它并且对我很好用:
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
Wakelock.enable();
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MainScreen()
);
}
}
希望这能解决你的问题。以下是该软件包的链接:https://pub.dev/packages/wakelock