如何让Quest Pro通过USB直连安卓手机的WebSocket服务器?
实现Quest Pro通过USB-C直连安卓WebSocket服务器(无WiFi、仅初始化用电脑)
核心思路
利用安卓的USB网络共享功能,让手机和Quest处于同一虚拟USB局域网内,再让WebSocket服务器监听该网络接口,Quest即可通过浏览器直接访问手机的内网IP。
1. 电脑端一次性初始化配置
- 开启设备调试:
- 安卓手机:激活开发者选项后,开启「USB调试」和「USB网络共享」(部分机型叫USB tethering)
- Quest Pro:开启开发者模式后,打开「USB调试」
- 用USB-C将两者连到电脑,确认ADB连接正常:
输出应显示手机和Quest的设备ID。adb devices
2. 获取手机USB共享网络的IP
- 在手机上开启「USB网络共享」,此时手机会创建虚拟以太网接口(通常是
rndis0或usb0) - 通过ADB执行命令获取该接口的IP:
记下这个IP(比如adb shell ifconfig rndis0 # 若找不到则替换为usb0,查看inet字段的IP地址192.168.42.1)。
3. 修改WebSocket服务器代码
- 让服务器监听所有网络接口(
0.0.0.0),或者直接监听刚才获取的USB共享IP,确保能接收来自USB局域网的请求:- 示例(Java):
ServerSocket serverSocket = new ServerSocket(8080, 0, InetAddress.getByName("0.0.0.0")); - 这样服务器会响应来自WiFi、USB共享等所有接口的连接请求。
- 示例(Java):
4. 配置Quest的USB网络(电脑端完成)
- 断开电脑,用USB-C直接连接手机和Quest
- 若Quest未自动识别USB网络,进入设置→网络,手动选择USB网络连接
- 可选:通过ADB(电脑连Quest时)确认Quest的USB网段IP,确保和手机同网段:
adb shell ip addr show usb0
5. 无电脑验证连接
- 关闭手机和Quest的WiFi,确保仅通过USB传输
- 在Quest浏览器中输入WebSocket地址:
ws://<手机USB共享IP>:<服务器端口>,比如ws://192.168.42.1:8080 - 若连接成功,说明配置生效。
排查要点
- 若Quest无法识别USB网络:重启手机和Quest,重新开启USB共享
- 连接失败:检查手机防火墙是否允许服务器端口的入站请求,或临时关闭防火墙
- 确保服务器未仅监听WiFi接口(比如
192.168.0.x),必须监听0.0.0.0或USB共享IP
内容的提问来源于stack exchange,提问作者user439299
相关产品推荐
相关产品推荐

