在 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
我的问题
在后台访问 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
我的问题