通过蓝牙从Wear OS发送UDP消息



我的目标是从SmartWatch(运行wear os 2(向同一网络上的Arduino发送UDP消息(小于100字节(。只要SmartWatch保持连接到wifi(手表的ip地址:145.167.189.23(,这就很好。但当我打开蓝牙时,智能手表会禁用wifi,并通过连接蓝牙的手机切换到互联网连接。SmartWatch从移动设备获取互联网连接子网中的ip地址(如果移动设备的ip地址为145.167.189.105,则会获得145.167.177.4(。TCP请求(如"stackoverflow.com"(运行良好。

如果我现在尝试发送UDP消息,Arduino将不会收到任何消息。我已经尝试将UDP消息发送到255.255.255.255145.255.255.255145.167.255.255.145.167.189.255,但Arduino从未收到任何消息(Wireshark验证(。六年多前也出现了同样的问题(简单UDP广播在Android Wear上不起作用(,当时Wear os 2还不可用。唯一提出的解决方案是"磨损数据层"。我也已经尝试过了,但观察到了非常大的延迟(大约3秒(。因此,这些对我来说根本不是一个解决方案。

wear os上的网络访问文档只显示

您可以使用HTTP、TCP和UDP 等协议

也许有人可以告诉我为什么UDP消息没有从手机转发。

只有DNS udp包才能转发到手机。

  1. 它设置了一些iptable规则来将udp包转发到TPROXY。查看以下规则(iptables-t mangle-L(。它不会将udp数据包转发到保留的IP地址
Chain oem_CW_PROXY_UDP (22 references)
target     prot opt source               destination
RETURN     all  --  anywhere             0.0.0.0/8
RETURN     all  --  anywhere             loaclhost/8
RETURN     all  --  anywhere             100.64.0.0/10
RETURN     all  --  anywhere             127.0.0.0/8
RETURN     all  --  anywhere             169.254.0.0/16
RETURN     all  --  anywhere             172.16.0.0/12
RETURN     all  --  anywhere             192.0.0.0/29
RETURN     all  --  anywhere             192.0.2.0/24
RETURN     all  --  anywhere             192.168.0.0/16
RETURN     all  --  anywhere             198.18.0.0/15
RETURN     all  --  anywhere             198.51.100.0/24
RETURN     all  --  anywhere             203.0.113.0/24
RETURN     all  --  anywhere             224.0.0.0/4
RETURN     all  --  anywhere             240.0.0.0/4
RETURN     all  --  anywhere             255.255.255.255
TPROXY     udp  --  anywhere             anywhere             TPROXY redirect 0.0.0.0:35070 mark 0x1/0x1
  1. TPROXY将通过蓝牙插座将收到的udp封装转发到手机。但它只适用于woard DNS包,这可以从手表的日志中看到。看起来Wear操作系统在某个时候决定只支持两个DNS包
05-20 12:20:31.269806  1263  5866 D HOME    : [ClockworkProxyUdp]Got packet with 47 bytes, from: /192.168.167.239:36215 original dst: /8.8.8.8:53
05-20 12:21:05.264492  1263  5866 D HOME    : [ClockworkProxyUdp]Got packet with 47 bytes, from: /192.168.167.239:63348 original dst: /8.8.8.8:53
05-20 12:21:05.272685  1263  5866 D HOME    : [ClockworkProxyUdp]Got packet with 32 bytes, from: /192.168.167.239:34219 original dst: /8.8.8.8:53
05-20 12:21:38.282089  1263  5866 D HOME    : [ClockworkProxyUdp]Got packet with 47 bytes, from: /192.168.167.239:54529 original dst: /8.8.8.8:53
05-20 12:21:38.287255  1263  5866 D HOME    : [ClockworkProxyUdp]Got packet with 32 bytes, from: /192.168.167.239:58688 original dst: /8.8.8.8:53

相关内容

  • 没有找到相关文章

最新更新