当前位置: 首页 > 知识库问答 >
问题:

如何使用FLAG_KEEP_SCREEN_ON在 Flutter 中保持屏幕打开?

糜运良
2023-03-14

我一直在努力研究如何在我正在开发的应用程序中保持屏幕打开。网上有很多关于这方面的信息,但我还没有找到任何具体的颤动。我发现了各种关于使用唤醒锁的帖子,但当我尝试我的应用程序总是在启动时崩溃。不过,我宁愿不使用唤醒锁。

我找到的信息告诉我将以下内容放入MainActivity.java。

getWindow()。addFlags(WindowManager。layout params . FLAG _ KEEP _ SCREEN _ ON)

当我这样做时,由于错误,该应用程序将无法编译。

包WindowManager不存在getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)^
1个错误

失败:构建失败,出现异常。

这是我在MainActivity.java的代码

import android.os.Bundle;
import io.flutter.app.FlutterActivity;
import io.flutter.plugins.GeneratedPluginRegistrant;

public class MainActivity extends FlutterActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  GeneratedPluginRegistrant.registerWith(this);
}

关于我错过了什么有什么建议吗?

编辑:我能够使FLAG_KEEP_SCREEN_ON工作。我需要导入android.view。MainActivity.java中的WindowManager。这就是代码现在的样子:

import android.os.Bundle;
import android.view.WindowManager; //Needed for not letting screen shut off.
import io.flutter.app.FlutterActivity;
import io.flutter.plugins.GeneratedPluginRegistrant;

public class MainActivity extends FlutterActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    GeneratedPluginRegistrant.registerWith(this);

    //Do not let screen shut off.
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
  }
}

我尝试使用android:keepScreenOn=“true”,但无法确定将其放在我的文件中的位置。

共有2个答案

班昱
2023-03-14

您应该将它添加到manifest.xml中:

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

此权限将允许您使用唤醒锁api。

文嘉禧
2023-03-14

我认为你可以使用android的:保持屏幕上="真"。请看一下https://developer.android.com/training/scheduling/wakelock

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true">
...
 类似资料:
  • 问题内容: 我找到了几种解决方案,如何在Java中做到这一点,但没有找到如何在QML或Qt中做到这一点。我知道首先我应该在中设置许可。我应该怎么做才能在运行时从Qt打开和关闭屏幕锁定? 问题答案: 您可以使用Qt Android Extras模块并使用JNI从C ++调用相关的Java函数。就像是 :

  • 问题内容: 在终端中工作时,我看到了最后一个Shell命令执行输出的历史记录。如果运行vim,我会看到全屏打开的文件。退出vim时,我可以再次看到最后一个shell命令的历史记录。 但是,当我从屏幕上使用vim时。我在退出vim时看到的是刚刚编辑的文件的足迹,而不是最后一个shell命令的历史记录。 我想看看外壳的历史。 我该如何实现这种行为? 我用了: terminal.app和iterm2.a

  • 问题内容: 设置网页的最佳做法是什么,以便在该网页上显示的内容/文本很少的情况下,页脚显示在浏览器窗口的底部,而不是显示在网页的中途? 问题答案: 您正在寻找的是 CSS Sticky Footer 。

  • 在Twitter应用程序中,当你点击一条推文时,屏幕会向左滑动,就像页面在滑动一样。我想这是动画部分。我想在我的应用程序中找到它,但在上面找不到任何东西。在我的应用程序中,有许多片段可以多次添加/删除。每个片段上都有按钮,当我点击一个按钮时,新的片段就会出现。我希望他们像推特上的页面一样滑动。我知道ViewPager类,但这是不同的。请帮帮我。谢谢

  • 本文向大家介绍在SAP中使用VBA的打印屏幕,包括了在SAP中使用VBA的打印屏幕的使用技巧和注意事项,需要的朋友参考一下 如果您使用的是SendKeys,请避免使用它。我在过去的项目中使用过它,它似乎前后不一致且容易出错。 您可以在模块顶部使用以下代码段,并在需要时调用它。