.NET 8 MAUI Android调用SerialPort.GetPortNames抛异常,求可用性确认
.NET 8 MAUI Android 7(API 24)串口支持说明
核心结论
System.IO.Ports 类库官方并未提供Android平台的支持,包括Android 7(API 24)。你看到的其他开发者在Android上实现串口功能,并非直接使用System.IO.Ports,而是通过其他适配方式完成的。
异常原因分析
调用System.IO.Ports.SerialPort.GetPortNames()抛出TargetInvocationException,本质是因为该类在Android平台下没有对应的底层实现逻辑,反射调用时找不到有效执行目标,从而触发异常。
可行解决方案
- 调用Android原生串口API:通过.NET的Java互操作能力,直接调用Android系统的
SerialPort相关类(需自行处理JNI绑定或编写Java层适配代码) - 使用第三方MAUI串口库:选择针对多平台做过适配的第三方串口库,这类库会为Android平台提供专门的实现逻辑,避开原生类库缺失的问题
- 配置必要权限:在AndroidManifest.xml中添加串口操作相关权限,如
READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE,部分设备可能需要系统级权限或root才能访问隐藏串口
内容的提问来源于stack exchange,提问作者erict
相关产品推荐
相关产品推荐

