java - 寻找跨平台移动应用程序与微 Controller 通信的选项

标签 java android ios mobile

我编写了一个与微 Controller 通信的 Java SE 桌面应用程序。它显示从它接收到的数据并向其发送更新,不断进行通信。它使用一些第三方库和 javax.comm 库通过串行进行通信。我们目前正在研究开发具有相同功能的跨平台移动应用程序的选项。最终,这个新应用程序将能够在桌面、手机和平板电脑上编译和运行。我研究了几个选项(Oracle 的新 ADF mobile、phoneGap、Java ME 等),但想知道是否有人对最好的选项有任何建议。随时提出任何后续问题。提前致谢。

最佳答案

在执行此操作时,您将遇到一些挑战。首先,任何跨平台框架几乎都是立马出局的。由于下面列出的重大差异,据我所知,没有任何框架支持硬件连接。

硬件

您的嵌入式设备当前正在使用 RS-232 (UART) 与 PC 通信。这是一个硬件接口(interface),在任何消费类移动设备上都不存在(iPhone 除外,但我们会做到这一点)。从硬件角度来看,支持点对点连接的所有主要设备平台(iOS、Android、Windows Phone)之间唯一的通用接口(interface)是 USB 和蓝牙。

在这两者中,蓝牙是更容易适应您的嵌入式设备的一种,因为市场上有许多蓝牙调制解调器可以简单地连接到 UART 并使用 RFCOMM 协议(protocol)通过链路中继数据作为有线替代品。

SDK 支持(即 APP 如何与该硬件通信?)

  • Android SDK 支持应用程序与两个接口(interface)之间的通信。蓝牙出现在 Android 2.0 中,USB 出现在 Android 3.1 中。
  • 自 iOS 3.0 起,iOS SDK 支持与两者通信。从 iOS 5 开始,它还支持蓝牙 LE。
  • Windows Phone 8 SDK 声称它将支持蓝牙连接,但据我所知没有关于 USB 支持的消息。

许可

这个实际上只适用于 iOS,但它适用于 蓝牙和 USB/串口。为了开发 iOS 连接的硬件方面,您必须是他们的 Made For iPod 计划的成员。成员(member)资格是免费的,但需要大量的文书工作,而这实际上只能让您访问实现其专有连接器所需协议(protocol)所需的文档。获得进行实际连接所需的连接器和其他组件需要获得不容易获得的进一步批准。

Bluetooth LE 是 iOS 上唯一不需要加入 MFi 即可在硬件和软件方面实现的连接标准。但是,迄今为止,还没有其他主要的移动 SDK 直接支持此接口(interface)(Android 正在实现)。

总的来说,我的建议是倾向于添加蓝牙并密切关注蓝牙 LE 领域。如果你能找到运行双模式的嵌入式模块,你可以在 iOS 设备上运行 LE,在其他平台上运行标准蓝牙。这是我能想到的唯一免许可途径,并且随着蓝牙 LE SDK 支持的改进,其他设备也可以利用它。

关于java - 寻找跨平台移动应用程序与微 Controller 通信的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13075193/

相关文章:

java - Android绘制多个圆圈而旧的圆圈不消失

android - 自定义日历日期范围滑动选择android

Android 外部存储与 SD 卡

ios - 在 xcode 8 中使用 Swift 3 出现未知错误 - "Editor placeholder in source file"

java - 自定义注释不验证方法参数

java - 线程中出现异常 "main"java.lang.OutOfMemoryError : Java heap space on eclipse

java - 自动确定 Junit 测试副作用

android - iOS/Android firebase 后台同步

iOS 8 - UIScrollView 不滚动

java - 这两种方法有什么区别? JAVA