You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Delphi+Android下Indy Socket Error #13权限拒绝异常

解决Socket Error #13 Access Denied(TIdSimpleServer监听问题)

最直接的修复:更换监听端口

Android 10及更高版本(包括你使用的Android 11)禁止普通应用使用1024以下的特权端口,你当前设置的55端口属于这类受限端口,这才是权限拒绝的核心原因,和你添加的INTERNET权限无关。

把端口改成1024以上的数值即可,比如5555:

IdSimpleServer.Port := 5555; 
IdSimpleServer.Listen(20000);

额外配置建议

  • 绑定正确的网络地址:如果需要接收外部设备发来的文件,确保TIdSimpleServer绑定到所有可用网卡,而不是仅本地回环地址。可以添加以下代码:
    IdSimpleServer.Bindings.Clear;
    with IdSimpleServer.Bindings.Add do
    begin
      IP := '0.0.0.0';
      Port := 5555;
    end;
    
  • 后台监听的权限补充:如果你的APP需要在后台持续监听文件传输,需在AndroidManifest.xml中添加前台服务权限:
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    
    同时将APP运行在前台服务中,避免Android 11的后台限制切断网络连接。

无关权限清理

你添加的ACCESS_NETWORK_STATE权限和Socket监听功能无关,完全可以从清单文件中移除,不会影响功能。

内容的提问来源于stack exchange,提问作者alvaroc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 02:17:23