Riz*_*wan 6 android screenshot mdm
我正在制作一个 MDM 应用程序,我必须在其中阻止设备中所有应用程序的屏幕截图。我知道使用
getWindow().setFlags(LayoutParams.FLAG_SECURE,LayoutParams.FLAG_SECURE)
Run Code Online (Sandbox Code Playgroud)
我可以在我的应用程序活动中禁用屏幕截图,但我想在安装到设备中的所有应用程序中禁用屏幕截图。以前我使用文件观察器来阻止屏幕截图,它检测是否有任何图像已添加到 Screenshot 文件夹中,它正在删除该图像。但是从 Android M 开始,他们不允许文件观察器。我搜索了很多,但没有得到任何解决方案。但是许多Android应用程序,如quick Heal的seqrite MDM也阻止了Android M中的屏幕捕获,因此必须有某种方法。
我在 DevicePolicyManger 类中找到了 api setScreenCaptureDisabled,它可以禁用屏幕捕获,但只能由设备所有者应用程序调用。
如果有人知道阻止屏幕捕获的方法,请帮助我。
我通过在 seqrite 应用程序中阻止屏幕捕获时使用日志得到了解决方案。如果屏幕阻止被激活,他们会启动一项服务,在该服务上显示一个浮动窗口
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.WRAP_CONTENT,
WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY,
WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH | WindowManager.LayoutParams.FLAG_SECURE,
PixelFormat.TRANSPARENT);
params.screenOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT;
params.gravity = Gravity.CENTER;
mView = new LinearLayout(ctx);
View btn = new View(ctx);
mView.addView(btn);
wm.addView(mView, params);
Run Code Online (Sandbox Code Playgroud)
在这里,我使用安全标志,它会阻止所有应用程序捕获屏幕。因为这个窗口位于顶部,它阻止了屏幕捕获。
| 归档时间: |
|
| 查看次数: |
1820 次 |
| 最近记录: |