【问题标题】:Why can't I answer calls through a Bluetooth device after connecting it to an iOS or Android device?为什么蓝牙设备连接到 iOS 或 Android 设备后无法通过蓝牙接听电话?
【发布时间】:2022-08-10 07:27:48
【问题描述】:

将蓝牙设备连接到 iOS 或 Android 设备后,我面临以下问题:

  • 无法通过蓝牙耳机接听电话
  • 无法通过蓝牙扬声器录制和播放音频

    标签: android ios flutter bluetooth agora.io


    【解决方案1】:

    对于您的 Android 设备,请检查以下内容:

    1. 在您的AndroidManifest.xml 中确保您已添加蓝牙权限
       <uses-permission android:name="android.permission.BLUETOOTH" />
       <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
       <uses-permission android:name="android.permission.READ_PHONE_STATE" />
       <!-- Add the following permission on devices running Android 12.0 or later -->
       <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"  />
      
      1. 检查蓝牙设备是否支持 SCO。如果没有,请切换到支持 SCO 的蓝牙设备。
      2. 调用 Android 原生 API AudioManmager.isBluetoothScoAvailableOffCall 方法检查设备是否支持将 SCO 用于非通话用例。如果设备不支持该功能,用户只能使用系统默认的音频路由接听电话。

      对于您的 iOS 设备,根据您遇到问题的呼叫类型,选择以下解决方案之一来设置音频路由:

      • 电话
      1. 接听电话前,在“设置”中更改音频路由设置:向下滑动显示搜索栏,搜索“呼叫音频路由”,将音频路由更改为蓝牙耳机。即使您按下 iPhone 上的接听按钮,所有来电都将通过蓝牙设备接听。
      2. 通话过程中,您可以在通话界面中切换蓝牙耳机、听筒或扬声器选项。
      3. 如果您将iOS设备连接到蓝牙音箱并在应用程序中接听电话,请确保该应用程序使用CallKit,否则上述设置不起作用。
        • VoIP 通话
        1. 在拨打 VoIP 电话之前,您需要在控制中心切换到蓝牙耳机模式。应用可以调用 iOS 原生 API setPreferredInput 方法来改变音频路由。
        2. 当通过蓝牙设备进行的VoIP通话被电话打断时,点击蓝牙设备上的接听按钮即可接听电话,通话结束后,您可以通过蓝牙设备继续进行VoIP通话。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 2016-07-08
      • 2018-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多