【发布时间】:2018-08-01 10:20:27
【问题描述】:
我正在开发一个 VoIP-Android-App,该应用需要能够通过蓝牙耳机接听/拒绝通话。
但问题是添加到SCO的连接后
audioManager.startBluetoothSco()
audioManager.isBluetoothScoOn = true
单击耳机按钮后,我可以听到通常在我使用电话接听电话时发出的声音,因此我假设某些 android 系统组件捕获了此信号并且不会进一步发出它
我已经尝试过的:
1) 电话状态监听器(它总是空闲的)
val tm = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
phoneStateListener = MyPhoneStateListener()
tm.listen(phoneStateListener, PhoneStateListener.LISTEN_CALL_STATE)
2) MediaSession + 无声噪音 + 媒体按钮监听器 不适用于第一次点击,第二次+点击正确处理
3) MEDIA_BUTTON 接收器不工作
我在 SO 上发现了一个类似的问题,但没有答案如何使它工作 Accepting a Call via Bluetooth Headset
那么无论如何我可以如何拦截蓝牙耳机服务中的蓝牙按钮点击?
【问题讨论】:
-
好问题。但是我在android中自动接听电话,我能够通过电话接口自动拒绝电话,但没有找到接听电话的解决方案
-
我也是,你可以收听 SCO 状态并在断开连接时结束通话,但如何复制相同的内容来接听电话仍然是一个谜
-
我尝试了很多天,但我了解到一件事,android允许拒绝呼叫,但接受呼叫权限是系统权限,android只会将系统权限授予系统应用
标签: android bluetooth voip-android