Android 11 webview webrtc无法使用问题

问题:Android 11 webview 调用webrtc无法使用, 看logcat日志会报如下错误

[ERROR:address_tracker_linux.cc(245)] Could not send NETLINK request: Permission denied (13)

查了下相关的网络权限都有配置了还是不行,还是报这个权限问题

原因:跟 android11 限制读网卡信息有关系, 算webview的一个兼容bug 

https://developer.android.com/about/versions/11/privacy/mac-address

解决: 

方案一: 可以修改app 的targetSdkVersion小于30 

方案二:发现第一次发起连接失败后再连接就正常了,所以在正式连接之前发起一次连接

async function connect() {
     if (getAndroidVersion() === 11) {
          await this.fixAndroid({
            iceServers,
            iceCandidatePoolSize: 1, //  这里要设置1, 不设1也连不上,不知道为什么
          })
     }
    // 发起正式连接
    // let peer = new RTCPeerConnection(turn);
    // ......

}


function getAndroidVersion() {
  // 获取设备信息
  const deviceInfo = navigator.userAgent;
  // 解析设备信息
  const androidVersion = deviceInfo.match(/Android ([\d.]+)/);
  if (androidVersion && androidVersion!.length === 2) {
    return Number(androidVersion![1])
  }
  // 返回系统版本号
  return null;
};

async fixAndroid(turn: any) {
    console.log("fixing android webrtc bug");
    return new Promise(async (resolve, reject) => {
      try {
        let peer = new RTCPeerConnection(turn);
        let offer = await peer.createOffer({
          offerToReceiveAudio: true,
          offerToReceiveVideo: true
        })
        let rtcDesc = new RTCSessionDescription(offer);
        await peer.setLocalDescription(rtcDesc);
        setTimeout(()=> {
          peer.close()
          console.log("fixAndroid close")
          resolve()
        }, 1000)
      } catch (e) {
        resolve()
        console.error("fixAndroid", e)
      }
    })

  }


参考:

相关推荐

  1. Android 11 webview webrtc无法使用问题

    2024-02-08 06:28:01       34 阅读
  2. macOS 13.6上Sublime无法使用Package Control问题

    2024-02-08 06:28:01       29 阅读
  3. windows11 ssh 无法连接问题解决方法

    2024-02-08 06:28:01       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-08 06:28:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-08 06:28:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-08 06:28:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-08 06:28:01       20 阅读

热门阅读

  1. SQL优化

    2024-02-08 06:28:01       27 阅读
  2. c# Zip压缩解压缩

    2024-02-08 06:28:01       31 阅读
  3. C#面:什么是ASP.NET中的用户控件

    2024-02-08 06:28:01       30 阅读
  4. 每天一个数据分析题(一百五十六)

    2024-02-08 06:28:01       40 阅读
  5. 9.4 OpenGL帧缓冲:纹理和帧缓冲之间的反馈循环

    2024-02-08 06:28:01       26 阅读
  6. 麒麟V10+飞腾处理器源码编译qt

    2024-02-08 06:28:01       33 阅读