手机视频网站搭建,什么是外包,郑州营销型网站设计,双滦区seo整站排名在应用中#xff0c;设置activity的flag为FLAG_SECURE就可以禁止截屏#xff0c;截屏出来是黑色的#xff0c;
试验一下#xff0c;
注意事项 影响#xff1a; 设置 FLAG_SECURE 标志后#xff0c;用户将无法对该Activity进行截屏或录制屏幕。这个标志会影响所有屏幕录…在应用中设置activity的flag为FLAG_SECURE就可以禁止截屏截屏出来是黑色的
试验一下
注意事项 影响 设置 FLAG_SECURE 标志后用户将无法对该Activity进行截屏或录制屏幕。这个标志会影响所有屏幕录制工具不仅仅是截屏工具。 适用场景 这个标志适用于需要保护敏感信息的场景例如银行应用、支付应用等。 用户体验 用户可能会注意到屏幕录制或截屏功能被禁用因此在使用这个标志时最好在应用中提供相应的提示或说明。
完整示例
以下是一个完整的示例展示了如何在一个简单的Android应用中禁止截屏。
activity_main.xml
?xml version1.0 encodingutf-8?
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalandroid:padding16dpTextViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:textThis screen cannot be captured or recorded.android:textSize18spandroid:layout_gravitycenter_horizontalandroid:layout_marginTop20dp/
/LinearLayout
MainActivity.java
package com.example.noscreenshot;import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;public class MainActivity extends AppCompatActivity {Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}Overrideprotected void onResume() {super.onResume();// 设置 FLAG_SECURE 标志来禁止截屏getWindow().addFlags(android.view.WindowManager.LayoutParams.FLAG_SECURE);}Overrideprotected void onPause() {super.onPause();// 可选在不需要禁止截屏时移除 FLAG_SECURE 标志// getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_SECURE);}
} 可以发现不能截屏了使用screencap命令也不能截屏再试验一下scrcpy工具
https://github.com/Genymobile/scrcpy/releases
这个和录屏类似也是黑色的但是其他的surface是可以看到的使用分屏显示其他应用 scrcpy的录屏是创建了一个display这里可以猜测系统中surfaceflinger对新创建的这个display也进行了surface的合成而不是画面的复制。