FLAG_SECURE阻止拍摄屏幕图片和屏幕镜像。但是FLAG_SECURE不会阻止通过USB共享屏幕。我使用scrcpy程序进行屏幕共享DEVELOPMENT_SETTINGS_ENABLED不是一个足够的解决方案。如何防止scrcpy抓取我的屏幕?我必须在安卓工作室上做这件事。除了flag_secure,还有其他方法吗?
但是FLAG_SECURE不能阻止通过USB 共享屏幕
我可以重现这个问题。我有点惊讶,这是有效的
我忘记了这一切背后的历史。最初,scrcpy无法访问安全窗口。他们在2019年找到了一个解决方案,该解决方案似乎在Android 12中被阻止。
如何防止scrcpy抓取我的屏幕?
如果检测到已启用USB调试,您的应用程序可能会拒绝运行。这将使发展变得痛苦。
AFAIK,scrcpy
通过在代表桌面程序工作的设备上安装并运行代理来工作。您可能会看到是否有方法检测该代理。不过,这并不能阻止其他攻击者以破坏代理检测逻辑的方式修改scrcpy
。
但是没有FLAG_SECURE_NO_REALLY_I_MEAN_IT_THIS_TIME
标志可供您使用,而不是FLAG_SECURE
。据我所知,除了FLAG_SECURE
之外,也没有其他东西可以阻止屏幕访问。
即使尝试了FLAG_SECURE,我也面临着同样的问题,但最好的选择是检查是否启用了开发人员选项。
请按照以下解决方案检查是否打开了开发人员选项。
public static int devOptions(Context context) {
int devOptions = Settings.Secure.getInt(context.getContentResolver(), Settings.Global.DEVELOPMENT_SETTINGS_ENABLED, 0);
return devOptions;
}
如果响应为1,则打开开发人员选项,您可以要求用户先关闭。
快乐编码。。。