问题描述
|
我有一个用C#.NET 4.0编写的应用程序。我考虑使用MonoDroid使其也可以在Android系统上运行。事实是,该应用程序严重依赖于.NET Framework名称空间System.IO.Ports,该名称空间似乎在MonoDroid中不存在。我有什么解决方案,所以我仍然可以使用MonoDroid?
解决方法
我向Android版Mono添加了对串行端口支持的增强请求:
https://bugzilla.novell.com/show_bug.cgi?id=687407
但是,我不确定它会有多大用处,因为粗略的搜索表明需要一个定制的Linux内核才能在Android上获得RS232串行端口支持,因此这可能有点不入门。
还有android-serialport-api ...但是Wiki还建议重新编译内核。
假设您希望将其用于“正常”使用(在Android电子市场等方面的部署),我不确定串行端口是否支持任何形式。
,如果只需要一些简单的代码构造,则可以从mono github存储库中获取一些代码。当然,并非主要mono库中的所有内容都可以在MonoDroid中使用,但是诸如枚举之类的某些东西应该没有问题地进行复制/粘贴。最终,据我所知,您并没有在Android中获得实际的串行端口。
正如其他人所说,可能有一种方法可以将串行破解到您的设备上。但是,探索蓝牙或wifi串行适配器可能会更好。 (蓝牙SPP可用于Android,但可能不适用于iOS,因此,如果您想同时覆盖两者,则可能要使用wifi。)然后,您可以创建自己的System.IO.Ports.SerialPort实现,将其包装在您的设备中MonoDroid项目。
我自己还没有这样做,但是我已经探索过了。