如何在flutter中保持应用程序唤醒?

问题描述 投票:0回答:4

如何防止应用程序在抖动中锁定屏幕?

是否有一个标志可以将其关闭和打开? flutter SDK 是否暴露了这个?

类似

keepAwake(true);

flutter
4个回答
132
投票

注意:这个包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();

62
投票

我找到了可以完成这项工作的插件。 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" />

6
投票

这个包可以完成工作 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(),
    );
  }
}

注意:您必须停止并再次运行


5
投票

由于@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

© www.soinside.com 2019 - 2024. All rights reserved.