如何以编程方式检测Android中是否正在运行任何屏幕录制过程/应用程序?
我不希望用户截取我的应用的屏幕截图或录制屏幕。我已将安全标志添加到窗口中。这可以防止用户截取屏幕截图和录制屏幕。
如果屏幕录制处于打开状态,我的应用会阻止录制内容,但会录制音频。
在某些有根设备上,安全标志可能无法按预期工作。因此,我只想检测是否有任何屏幕录制应用程序/进程在后台运行,以便我可以隐藏敏感数据并防止其被记录。
有没有办法检测屏幕录制是否打开?
我不希望用户截取我的应用的屏幕截图或录制屏幕。我已将安全标志添加到窗口中。这可以防止用户截取屏幕截图和录制屏幕。
如果屏幕录制处于打开状态,我的应用会阻止录制内容,但会录制音频。
在某些有根设备上,安全标志可能无法按预期工作。因此,我只想检测是否有任何屏幕录制应用程序/进程在后台运行,以便我可以隐藏敏感数据并防止其被记录。
有没有办法检测屏幕录制是否打开?
有没有办法检测屏幕录制是否打开?
哈哈
因此,我只想检测是否有任何屏幕录制应用程序/进程在后台运行,以便我可以隐藏敏感数据并防止其被记录。
由于屏幕录制不需要特定于录制的应用程序或进程(例如,),并且由于您无法知道使用媒体投影API的特定应用程序或进程,因此这似乎不切实际。而且,在现代版本的Android上,无论如何,您无法知道其他进程正在运行。此外,没有什么可以阻止用户将另一个摄像头指向设备屏幕并以这种方式记录其内容。adb shell screenrecord
我不希望用户截取我的应用的屏幕截图或录制屏幕
然后不要编写应用程序。背后的想法是帮助保护用户免受第三方的侵害,而不是保护开发人员免受用户的侵害。FLAG_SECURE
这里的答案实际上只是一般的安全。一旦数据流向某人的设备,那么您必须假设他们可以完全,不受限制地访问它。从某种意义上说,其他一切都只是混淆视听。它只是让它变得困难一些。即使设备的软件提供了一些保护,用户也可以对设备进行物理访问并可以将其植根。在某些时候,数据必须未加密并解混淆,以便可以向用户显示它,并且恶意用户可以MITM。如果您想要更好的安全性,则需要由设备通过硬件提供。这是一个大问题,电影最初被流式传输到移动设备。设备需要一个特殊的硬件加密通道,每秒解密一些不敬虔的数据量,如果有人试图MITM将屏幕上的未加密数据MITM,则很难写回磁盘。
现在,以上只是为了表明,当数据进入用户设备时,您无法保证您可以控制数据。相反,你应该退后一步,问问你想完成什么?您要防止哪种类型的行为?如果少数精通技术的用户能够解决您的保护措施,那可以还是大不了?什么是可接受的数据“泄漏”速率。这实际上取决于数据的敏感程度以及您告诉用户您对数据的保证类型。这方面是100%最关键的部分。如果您告诉用户他们发送的数据保证是短暂的,那么这是不可能的。试图建立它并修补所有漏洞并玩鼹鼠游戏是一场失败的战斗。获胜的唯一方法就是不玩。