这个帖子可能已经很久了,但对于那些可能尝试同样事情的人来说,AudioManager文档中的一些注释可能会有用。看起来缺少的元素是startBluetoothSco()命令,但是对此通道的使用有限制。来自Android Dev网站:

public void startBluetoothSco()从:API Level 8启动蓝牙SCO

音频连接。

需要许可:

许可权。

这种方法可以使用

想要发送和的应用程序

从蓝牙SCO接收音频

手机不在时耳机

呼叫。

作为SCO连接建立

应用可能需要几秒钟

不应该依赖于连接

方法返回时可用

而是注册接收

意图ACTION_SCO_AUDIO_STATE_CHANGED

等待状态

SCO_AUDIO_STATE_CONNECTED。

由于无法保证连接

成功,应用程序必须等待

这个意图超时了。

完成SCO连接后

或者如果企业超时,那么

申请必须打电话

stopBluetoothSco()来清除

请求并关闭蓝牙

连接。

即使是SCO连接

成立,以下

限制适用于音频输出

流,以便它们可以路由到

SCO耳机: - 必须是流类型

STREAM_VOICE_CALL - 格式必须是

单声道 - 采样必须是16kHz或

为8kHz

以下限制适用于

输入流: - 格式必须

mono - 采样必须为8kHz

请注意手机应用程序始终

优先考虑使用

用于电话的SCO连接。如果这

手机进入时调用方法

打电话会被忽略。同样,如果

收到或发送电话时

应用程序正在使用SCO

连接,连接将是

丢失了申请而不是

通话时自动返回

结束。

另请参见stopBluetoothSco()

ACTION_SCO_AUDIO_STATE_CHANGED

请注意,我没有对此进行测试,我只是传递了我在研究类似项目时发现的一条线索。我认为Jayesh接近解决方案,上面的限制可能是阻止它工作的原因。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐