实际上,这是从以下问题开始的: 我可以创建一个虚拟蓝牙耳机来操纵通话流吗?
我确信这可以通过用虚构的东西替换蓝牙的内核模块来完成。那么Android上的虚拟蓝牙设备?听起来绝对有可能。
而且,当然,人们可以简单地使用 Raspberry Pi,它能够模拟耳机(至少,仅 A2DP 播放)蓝牙配置文件,甚至这些 Bluegiga 模块之一,将自定义虚拟耳机与 Android 挂钩并让它播放听起来很有趣。(哦,好吧,只需将耳机的麦克风输入焊接到 PC 的声卡中就足够了..)
看来,Android(至少,植根)允许通过某种钩子侵入其他应用程序具有一定的灵活性 - https://play.google.com/store/apps/details?id=com.trigonesoft.iti;根据我对 JVMTI 和 jaspects 的桌面体验,有一个应用程序似乎也可以很好地欺骗基于 Java 的应用程序。-
所以理论上,有一种方法可以让系统认为蓝牙连接管理器实际上是连接到耳机,从而强制它使用蓝牙路由播放声音。
但是没有办法真正“玩”到电话交谈中,我知道——所以像Is it possible to create a simple answering machine in android?这样的问题吗?实际上 100% 没有答案。我想这是由于硬件限制(以及所有节能音频路由的花里胡哨,这似乎是真的)
所以,问题是:可以模拟蓝牙设备,而不必用自定义存根替换供应商的蓝牙内核模块(例如,在 MTK 手机上它的mtk_stp_bt)?
(老实说,这听起来像是我给出了一个蓝牙 SDK 在用户空间的想法,好吧,让我们声明我这样做是为了 CC-BY-NC 许可证 )