如何防止应用程序在抖动中锁定屏幕?
是否有一个标志可以将其关闭和打开? flutter SDK 是否暴露了这个?
类似
keepAwake(true);
注意:这个包wakelock与其他包有一些依赖冲突。使用这个 wakelock_plus 来代替。点击参考 由于对@Tree提到的screen插件的支持已经停止,并且现在存在一些问题,您可以使用
wakelock
。screen
插件的唤醒锁功能的端口,并修复了问题:
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);
唤醒锁加示例:
import 'package:wakelock_plus/wakelock_plus.dart';
// ...
// The following line will enable the Android and iOS wakelock.
WakelockPlus.enable();
// The next line disables the wakelock again.
WakelockPlus.disable();
我找到了可以完成这项工作的插件。 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 类。
权限 唤醒锁插件不需要任何平台上的任何权限。 这是因为它仅启用屏幕唤醒锁,而不启用任何使应用程序在后台保持活动状态的部分(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(),
);
}
}
注意:您必须停止并再次运行
由于@creativecreatorormaybe尚未回答,您可以使用wakeLock来保持屏幕打开。但我想添加放置
Wakelock.enable();
的位置。
这是我如何使用它的代码片段,它对我来说效果很好:
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