在 Android 11 中在后台访问麦克风/摄像头

Access Microphone / Camera in background in Android 11

在后台访问 Microphone 已在 Android 11 中停止。只有3个选项,使用时允许,允许一次,拒绝。

如何让应用在Android 11中一直在后台访问麦克风?有什么解决方法吗?

新的 Android 开发者政策限制在后台使用麦克风和摄像头。

使用Accessibility Service仍然可以在后台使用该功能。但是,通知将始终打开。

要访问 Android11 中的背景麦克风/摄像头/位置,Android 给出了一些豁免,您需要满足以下条件之一:

参考:https://developer.android.com/guide/components/foreground-services#restrictions-exemptions

豁免 while-in-use 限制::

当前台服务在以下情况之一启动时,该服务不受while-in-use访问位置、摄像头和麦克风的限制:

服务由系统组件启动。

服务是通过与应用程序小部件交互启动的。

通过与通知交互启动服务。

该服务作为从不同的可见应用程序发送的 PendingIntent 启动。

该服务由作为设备策略控制器的应用程序启动,该应用程序处于设备所有者模式运行。

该服务由提供 VoiceInteractionService 的应用程序启动。

该服务由具有 START_ACTIVITIES_FROM_BACKGROUND 特权权限的应用程序启动。

现在我们必须为前台服务指定类型 (https://developer.android.com/guide/components/foreground-services#types):

<manifest>
    ...
    <service ...
        android:foregroundServiceType="camera|microphone" />
</manifest>

但在某些情况下,即使我们指定 android:foregroundServiceType:

,我们的前台服务仍然无法访问摄像头或麦克风

如果前台服务在应用程序处于后台时启动(用户不可见 - 无可见活动),例如在设备启动 (BOOT_COMPLETED) 广播时,则此类服务无法开始使用摄像头、麦克风

如果前台服务在应用程序处于前台时启动(对用户可见 - 有些可见 activity),则此类服务可以使用摄像头、麦克风启动

信息来自:https://developer.android.com/guide/components/foreground-services#bg-access-restrictions

我的问题