gpt4 book ai didi

安卓 12 : Detect if user disables/enables camera and microphone

转载 作者:行者123 更新时间:2023-12-04 23:55:34 24 4
gpt4 key购买 nike

借助新的 Android 12 操作系统,用户现在可以完全禁用所有应用的麦克风和摄像头使用。这其实是一件好事,让用户轻松控制隐私。

如果某个应用启动并有权使用麦克风和摄像头,并且用户已禁用对这些硬件的所有访问权限,Android 12 会自动弹出警报,要求用户重新启用麦克风或摄像头,或者继续为该应用禁用硬件。

此外,在创建时,应用程序可以在开始时简单地检查是否启用了所需的硬件,还可以进一步提示用户或处理应用程序认为合适的情况。

但是如果用户在应用程序运行时禁用了麦克风或摄像头怎么办?我似乎找不到任何类似 onMicrophoneEnabled() 的接口(interface),甚至找不到此类事件的广播。

可以在每次调用 onResume() 时进行检查,但我希望有更优雅的解决方案。

如果有人知道当用户以任何一种方式进行更改时我的应用程序可以用来捕获此内容,请告诉我。

最佳答案

仔细阅读谷歌文档(https://developer.android.com/training/permissions/explaining-access#toggles)后,我发现了一些非常有趣的东西:

应用程序被明确禁止知道用户是否进行了这些操作。所以当然没有办法得到这些变化的通知:这是设计使然。

如果用户以这种方式关闭摄像头,应用仍会收到摄像头画面,但会是黑色的。同样,麦克风仍会工作,但我们只会保持沉默。这是一项功能——一种确保隐私的方法。

操作系统会提醒用户他们已禁用麦克风或摄像头,并提供重新启用硬件的机会,这很好。但是应用程序完全在黑暗中(呵呵)。

另一种思考方式:就像将一段胶带放在相机上或将拇指放在麦克风上一样。只是这一次是由操作系统完成的。这样, spy 程序或其他一些恶意软件仍会认为它在工作,不会试图绕过或放弃。

这也解释了为什么在 onResume()onWindowFocusChanged() 期间测试也不起作用。我得到的结果与设置不一致(它们与当前权限一致)。

所以回答我的问题:无法收到通知。这就是重点。

关于安卓 12 : Detect if user disables/enables camera and microphone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72006416/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com