您现在的位置是:首页 > 技术教程 正文

Android 11 webview webrtc无法使用问题

admin 阅读: 2024-03-31
后台-插件-广告管理-内容页头部广告(手机)

问题: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 

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

  1. async function connect() {
  2. if (getAndroidVersion() === 11) {
  3. await this.fixAndroid({
  4. iceServers,
  5. iceCandidatePoolSize: 1, // 这里要设置1, 不设1也连不上,不知道为什么
  6. })
  7. }
  8. // 发起正式连接
  9. // let peer = new RTCPeerConnection(turn);
  10. // ......
  11. }
  12. function getAndroidVersion() {
  13. // 获取设备信息
  14. const deviceInfo = navigator.userAgent;
  15. // 解析设备信息
  16. const androidVersion = deviceInfo.match(/Android ([\d.]+)/);
  17. if (androidVersion && androidVersion!.length === 2) {
  18. return Number(androidVersion![1])
  19. }
  20. // 返回系统版本号
  21. return null;
  22. };
  23. async fixAndroid(turn: any) {
  24. console.log("fixing android webrtc bug");
  25. return new Promise(async (resolve, reject) => {
  26. try {
  27. let peer = new RTCPeerConnection(turn);
  28. let offer = await peer.createOffer({
  29. offerToReceiveAudio: true,
  30. offerToReceiveVideo: true
  31. })
  32. let rtcDesc = new RTCSessionDescription(offer);
  33. await peer.setLocalDescription(rtcDesc);
  34. setTimeout(()=> {
  35. peer.close()
  36. console.log("fixAndroid close")
  37. resolve()
  38. }, 1000)
  39. } catch (e) {
  40. resolve()
  41. console.error("fixAndroid", e)
  42. }
  43. })
  44. }

参考:

  • https://stackoverflow.com/questions/70803796/ice-candidates-not-generating-on-android-11-chrome-in-some-devices
  • https://issues.chromium.org/issues/40194180

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索