Android 移动设备管理:禁用所有应用程序的屏幕截图
Android Mobile Device Management: Disable screenshots capture across all apps
我正在制作一个 MDM 应用程序,我必须在其中屏蔽所有屏幕截图
设备中的应用程序。我知道使用
getWindow().setFlags(LayoutParams.FLAG_SECURE,LayoutParams.FLAG_SECURE)
我可以在我的应用程序活动中禁用屏幕捕获,但我想
在安装到设备的所有应用程序中禁用屏幕捕获。之前
我正在使用文件观察器来阻止屏幕捕获,它正在检测是否
任何图像已添加到屏幕截图文件夹,它正在删除
图片。但是从 Android M 开始,他们不允许文件观察器。我
有很多搜索但没有得到任何解决方案。但是很多 android 应用程序
就像 quick heal 的 seqrite MDM 在 android 中阻止屏幕捕获
M也是,所以一定有办法。
我找到了 api setScreenCaptureDisabled
在 DevicePolicyManger class 中可以禁用屏幕捕获,但它
只能由设备所有者应用程序调用。
哪位知道屏蔽截屏的方法请帮帮我
要启动设备所有者,您需要擦除设备并使用 NFC 碰撞它,或者让用户 select 从菜单中执行(仅限 5.1 及更高版本)。除非你使用诸如摩托罗拉或 KNOX API(特定于平台)之类的东西,否则你对通用 Android 不走运。
我通过在 seqrite 应用程序中阻止屏幕捕获时使用日志获得了解决方案。在激活屏幕阻止的情况下,他们启动了一项服务,在该服务上显示浮动 window
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);
我在这里使用安全标志,它阻止在所有应用程序中捕获屏幕。因为此 window 位于顶部,阻止屏幕捕获。
我正在制作一个 MDM 应用程序,我必须在其中屏蔽所有屏幕截图 设备中的应用程序。我知道使用
getWindow().setFlags(LayoutParams.FLAG_SECURE,LayoutParams.FLAG_SECURE)
我可以在我的应用程序活动中禁用屏幕捕获,但我想 在安装到设备的所有应用程序中禁用屏幕捕获。之前 我正在使用文件观察器来阻止屏幕捕获,它正在检测是否 任何图像已添加到屏幕截图文件夹,它正在删除 图片。但是从 Android M 开始,他们不允许文件观察器。我 有很多搜索但没有得到任何解决方案。但是很多 android 应用程序 就像 quick heal 的 seqrite MDM 在 android 中阻止屏幕捕获 M也是,所以一定有办法。
我找到了 api setScreenCaptureDisabled 在 DevicePolicyManger class 中可以禁用屏幕捕获,但它 只能由设备所有者应用程序调用。
哪位知道屏蔽截屏的方法请帮帮我
要启动设备所有者,您需要擦除设备并使用 NFC 碰撞它,或者让用户 select 从菜单中执行(仅限 5.1 及更高版本)。除非你使用诸如摩托罗拉或 KNOX API(特定于平台)之类的东西,否则你对通用 Android 不走运。
我通过在 seqrite 应用程序中阻止屏幕捕获时使用日志获得了解决方案。在激活屏幕阻止的情况下,他们启动了一项服务,在该服务上显示浮动 window
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);
我在这里使用安全标志,它阻止在所有应用程序中捕获屏幕。因为此 window 位于顶部,阻止屏幕捕获。