【发布时间】:2021-03-01 10:16:28
【问题描述】:
如何限制用户截取课程应用的屏幕截图?
- flutter 应用面向安卓平台。
- 该应用将使用 PDF 视图和视频课程。
【问题讨论】:
如何限制用户截取课程应用的屏幕截图?
【问题讨论】:
在 MainActivity 类中,在 Flutter 项目的 android 项目目录中
将以下 import 添加到您的 MainActivity 类中:
import android.view.WindowManager.LayoutParams;
将以下行添加到您的 MainActivity's onCreate 方法中:
getWindow().addFlags(LayoutParams.FLAG_SECURE);
它将解决您面临的问题,并限制操作系统截屏。
【讨论】:
最简单的方法是使用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
【讨论】: