Android端Flutter搭建的HTTP服务无法被PC访问的问题及端口暴露方法
解决Android真机上Flutter Jaguar服务局域网访问被拒绝的问题
1. 添加Android网络权限
在android/app/src/main/AndroidManifest.xml文件中,于<application>标签外部添加网络权限声明,确保应用具备网络访问和接收外部连接的能力:
<uses-permission android:name="android.permission.INTERNET"/>
若应用运行在Android 10及以上版本,额外添加网络状态权限可规避潜在的网络访问限制:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
2. 修改Jaguar服务的绑定地址
默认情况下,Jaguar可能仅绑定到localhost(127.0.0.1),仅允许设备自身访问服务。要让局域网内其他设备连接,需将服务绑定到0.0.0.0(监听所有可用网络接口),修改启动代码如下:
final server = Jaguar(address: '0.0.0.0', port: 7777); await server.serve();
3. 检查Android设备防火墙
部分Android设备自带防火墙或安全软件,会拦截外部设备对7777端口的连接请求:
- 打开设备「设置」-「安全」或「隐私保护」菜单,找到防火墙/网络拦截相关选项
- 添加入站规则,允许7777端口的TCP连接;或暂时关闭防火墙,测试能否正常访问
4. 确认网络环境一致性
- 确保PC和Android设备连接同一WiFi网络(注意区分2.4G和5G频段,部分路由器会将两者分配至不同子网)
- 再次核对Android设备的IP地址(可通过「设置」-「关于手机」-「状态信息」查看),避免使用错误IP发起访问
完成以上操作后重启Flutter应用,再在PC上执行curl http://192.168.9.102:7777或用浏览器访问该地址,即可正常连接到Jaguar服务。
内容的提问来源于stack exchange,提问作者januw a
相关产品推荐
相关产品推荐

