【问题标题】:how to restrict flutter app to take screen shots? [duplicate]如何限制颤振应用截屏? [复制]
【发布时间】:2021-03-01 10:16:28
【问题描述】:

如何限制用户截取课程应用的屏幕截图?

  1. flutter 应用面向安卓平台。
  2. 该应用将使用 PDF 视图和视频课程。

【问题讨论】:

    标签: android flutter


    【解决方案1】:

    在 MainActivity 类中,在 Flutter 项目的 android 项目目录中 将以下 import 添加到您的 MainActivity 类中:

    import android.view.WindowManager.LayoutParams;

    将以下行添加到您的 MainActivity's onCreate 方法中:

    getWindow().addFlags(LayoutParams.FLAG_SECURE);

    它将解决您面临的问题,并限制操作系统截屏。

    【讨论】:

      【解决方案2】:

      最简单的方法是使用flutter_windowmanager 插件

      首先在你的 Flutter 项目的 pubspec.yaml 文件中导入它的最新版本,然后运行 ​​pub get。然后在您要禁用屏幕截图和屏幕录制的小部件的 initState() 方法中添加以下代码。

      Future<void> secureScreen() async {
          await FlutterWindowManager.addFlags(FlutterWindowManager.FLAG_SECURE); 
       }
      
       @override
       void initState() {
          secureScreen();
          super.initState();
       }
      

      如果您想禁用整个应用的屏幕截图,只需在 main.dart 文件的 main() 函数中调用 securescreen() 方法(如上定义)即可。

      选项 2:

      在MainActivity.java file.中写下这段代码

      @Override
        protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
        }
      

      并导入这些包!

      import android.view.WindowManager; 
      import android.view.WindowManager.LayoutParams;
      import android.os.Bundle; // required for onCreate parameter
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-26
        • 1970-01-01
        • 2021-04-15
        • 2020-10-13
        • 2020-04-27
        • 2012-12-27
        相关资源
        最近更新 更多