【发布时间】:2021-09-07 05:35:00
【问题描述】:
我能够使用 Android 播放捕获 API 创建一个系统应用来捕获 Android 10 系统中其他应用的音频。但是,它无法捕获目标 SDK 为 28 的某些应用程序的声音(一旦我将这些应用程序升级到目标 SDK 29,它将起作用)。
这令人费解,因为根据 Android official document 和 this blog,系统应用程序默认情况下应该能够捕获其他应用程序的声音,除非它被应用程序故意禁止(不是我的情况)。
【问题讨论】:
-
问题是什么?如果任何应用程序限制录制其音频并且那是系统策略,那么您将听不到此应用程序,因为您不应该为此目的排除此应用程序,系统不会让您录制此源
-
为了澄清我的问题,我的系统应用程序,比如在 SDK 29 中运行的 Alpha,据说可以记录另一个应用程序,比如 Beta,因为 Beta 在其清单中没有任何限制。但实际上,只有在Beta 29 也有目标SDK 的情况下,Alpha 才能录制Beta 的音频。如果 Beta 保持在 28 的目标 SDK 中,我只会得到无声音频,并且 logcat 输出中没有任何相关错误。顺便说一句,Alpha 使用系统 UID 运行,并且位于系统文件夹 /system/app 中,所以我认为它具有正确的优先级。