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

Xamarin Forms Android与UWP平台连接USB串口的实现问题咨询

Xamarin 跨平台USB串口通信实现方案

该需求完全可以通过Xamarin实现,你遇到的报错均为平台权限限制、类库兼容性问题导致,可通过分平台适配的方式解决:

  • Android平台:无需使用跨平台通用串口类库,直接通过Xamarin封装的Android原生USB设备API实现串口通信,或者选用专门适配Xamarin.Android的串口封装类。需要提前在AndroidManifest.xml中注册USB设备访问权限,运行时主动向用户申请USB设备使用授权,多端口打开时为每个端口创建独立的操作实例、避免重复占用同一端口句柄即可规避访问拒绝异常。
  • Windows UWP平台:System.IO.Ports类库本身不兼容UWP沙箱运行环境,抛出FileNotFoundException属于预期现象,需要改用UWP原生提供的Windows.Devices.SerialCommunication命名空间下的API实现串口操作。

你可以通过Xamarin.Forms依赖服务(DependencyService)实现跨平台统一调用:

  1. 在共享项目中定义串口操作公共接口ISerialPortService,封装打开端口、关闭端口、接收数据、发送数据等通用方法
  2. 分别在Android、UWP平台项目中实现该接口,调用对应平台的原生串口API完成逻辑
  3. 上层业务代码统一调用公共接口,无需感知平台差异

你之前使用跨Linux类库遇到的多端口AccessDenied Exception,核心原因是这类类库未针对Xamarin.Android/UWP做平台适配,权限校验、句柄管理逻辑不符合目标平台要求。你自行实现分平台逻辑时,只要在打开端口前先校验端口占用状态、打开后独占端口句柄、关闭时及时释放资源,即可稳定支持多端口同时通信。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 23:12:02