借助新的 Android 12 操作系统,用户现在可以完全禁用所有应用程序中的麦克风和摄像头使用。这其实是一件好事,让用户轻松掌控隐私。
如果应用程序启动并有权使用麦克风和摄像头,并且用户已禁用对这些硬件的所有访问权限,Android 12 会自动弹出警报,要求用户重新启用麦克风或摄像头,或者继续该应用程序的硬件已禁用。
此外,在创建时,应用程序可以简单地检查何时开始查看所需的硬件是否已启用,并且还可以进一步提示用户或根据应用程序认为合适的情况处理条件。
但是如果用户禁用麦克风或摄像头怎么办while该应用程序正在运行?我似乎找不到类似的接口onMicrophoneEnabled()
甚至是此类事件的广播。
每次都可以检查一下onResume()
被称为,但我希望有一个更优雅的解决方案。
如果有人知道当用户以任何方式进行更改时我的应用程序可以使用某些东西来捕获此信息,请告诉我。
After 小心阅读谷歌文档(https://developer.android.com/training/permissions/explaining-access#toggles)在他们实现用户启用/禁用摄像头和麦克风时,我发现了一些非常有趣的事情:
明确禁止应用程序了解用户是否执行了任何这些操作。因此,当然没有办法获得这些更改的通知:这是设计使然。
如果用户以这种方式关闭相机,应用程序仍然会获得相机反馈,但它会是黑色的。同样,麦克风仍然可以工作,但我们只会得到沉默。这是一项功能——确保隐私的一种方式。
操作系统会提醒用户他们已禁用麦克风或摄像头,并提供重新启用硬件的机会,这很好。但该应用程序完全处于黑暗之中(呵呵)。
另一种思考方式:就像在相机上贴一块胶带或在麦克风上贴上拇指一样。只是这一次是由操作系统完成的。这样,间谍程序或其他一些恶意软件仍会认为它正在工作,而不会尝试绕过或放弃。
这也解释了为什么测试期间onResume()
or onWindowFocusChanged()
也没用。我得到的结果与设置不符(它们与当前权限一致)。
所以回答我的问题:有没有办法得到通知。这就是我想说的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)