【问题标题】:What's the quickest mobile platform to create a Bluetooth application on?创建蓝牙应用程序的最快移动平台是什么?
【发布时间】:2011-04-04 12:34:04
【问题描述】:

大多数时候,我会在我的计算机上为嵌入式模块或小程序编写代码,以分析所述代码生成的数据。现在我被要求设计一个移动应用程序的原型来分析/显示该数据。我对任何一种流行语言(Obj-C/Java?)都没有(6 岁的 CS101)经验,更不用说 4-5 种流行的移动操作系统上可用的任何 API/库了,所以我更或小于第一格。

使嵌入式硬件与手机通话相当简单,只需添加一个蓝牙模块,我可以配置它来模拟串行端口(使用 SPP 配置文件),但我不知道从哪里开始。

我应该以什么样的移动操作系统/设备为目标,以便在拥有相同(没有)经验的情况下轻松/快速地开发蓝牙串行端口配置文件 (SPP) 应用程序?

黑莓

  • 每个人都在这里(除了我),所以这是我被推向的地方,除非有重大障碍或另一个更好(更快)
  • 较小的社区
  • 许多开发博客抱怨 SDK/工具不佳
  • “BlackBerry 设备对 SPP 的支持有限。” (PDF,第 9 页)

安卓

  • 这里的手机很少。
  • API 使查找设备并连接到它们看起来非常straightforward
  • 大型开发社区,(还有更多示例可供细读)。

WM6

  • 我有一部(坏的)WM6.5 手机。
  • 较小的社区
  • 手机可以有各种堆栈(MS、Widcomm),它们不能互操作,有些不支持 SPP,我不知道我的手机(HTC Ozone)有什么...

iOS

  • 没有/从未使用过 Mac,iPhone 在我的组织中只是略微流行。
  • 大型开发社区
  • Can only connect to approved Bluetooth devices(?) 如果我没看错的话,这个选项就死了。

一些可移植的框架(Appcelerator、PhoneGap)

  • 似乎不可能,因为他们无法连接蓝牙。

【问题讨论】:

    标签: android iphone blackberry windows-mobile bluetooth


    【解决方案1】:

    请注意,我的 Windows Mobile(和桌面)库 32feet.NET 同时支持 Microsoft 和 Widcomm 堆栈。

    【讨论】:

      【解决方案2】:

      我不确定您的应用程序的目标受众是什么,但如果它是一个内部或有限部署的应用程序,并且您只是想了解它在移动设备上的工作方式,那么它可能值得简单使用现有应用程序通过蓝牙将 CSV 文件从您的嵌入式设备传输到您要评估的手机,然后使用另一个现有应用程序分析收到的 CSV 文件。

      至少有适用于 Android 和 Windows Mobile 的蓝牙文件传输应用程序,我认为在黑莓上也有可能(但据我所知,尚未正式用于未越狱的 iPhone)。

      还有一些应用可以在这些平台上查看和编辑 csv 文件(例如,谷歌“Android 电子表格 csv”,您会找到 Android 的链接)。

      如果您反复执行此操作,手动执行此操作可能会非常痛苦,但它会让您了解它的工作原理,并可能有助于决定使用哪个手机平台的“外观和感觉”部分使用(在使用了几种不同的手机类型后,您可能会发现自己更加固执己见!)

      如果可能的话,一个稍微偏左的方法可能是在您的嵌入式机器中构建一个 WiFi 接入点(我意识到它可能不是......)和文件共享,甚至内置一个简单的 http 服务器提供数据。后者将允许您使用任何带有 WiFi 和体面浏览器的手机。

      【讨论】:

      • 演示的主要重点是数据是实时的。如果项目因您提到的原因以及更多原因而启动,则使用从设备到 LAN 的网关可能更现实,但这将增加任务,因为无论如何都必须在另外两个设备之上为完全不同的设备编写软件.
      • 我想这始终是一种平衡行为,但如果您想最大限度地减少开发时间/成本并且此时不太担心嵌入式系统的成本(并且您需要任何电源等)您可以使用如下架构:嵌入式设备 RS232 端口 -> RS232-3G 调制解调器 -> 3G 网络 -> 3G->RS232 调制解调器 -> 网络服务器。 Plus 手机网络浏览器 -> 网络服务器。使用这种配置,唯一的开发将是在 Web 服务器中(包括允许 Web 服务器控制它认为是本地 COM 端口的代码)。如果 3G 连接是长期目标,这可能没问题。
      【解决方案3】:

      如果您以蓝牙作为通信渠道进行销售,并且您的唯一标准是制作工作原型的时间:

      • 最佳选择:Windows Mobile
      • 亚军:Android

      为什么?

      1. iOS 可以立即被淘汰。蓝牙通信只能通过 iOS 认可的配件来实现,除非您在 MFi 开发者计划中,否则您无法构建或购买该配件。一个标准的支持 SPP 的嵌入式无线电模块不会起作用(MFi NDA 禁止我说更多)。

      2. 我从来没有在 BlackBerry 平台上进行过蓝牙开发,所以我在这里没有太多经验可以贡献,但我的印象是他们的支持更多地基于 J2ME JSR 实现,而不是任何特定于平台的东西,所以你可能会得到不稳定的结果。

      3. Android 在 Android 2.1+ 中对 RFCOMM(SPP 所在的位置)有很好的支持。与一个小模块和流数据建立联系相当简单,这些示例很有帮助。不过,有一个技巧,就是找到为嵌入式设备上的 SPP 服务发布的 UDID。 Android API 在帮助你发现这个价值方面做得并不好(不管我提交了多少错误报告)。我必须通过其他方式找出它是什么,并将其硬编码到应用程序中才能运行(如果您仍然感兴趣,可以了解更多)。

      4. Windows Mobile 是赢家,因为您可以在代码中完全绕过蓝牙,但仍然使用它。 WinMo 有一个用于设置蓝牙设备的控制面板,因此您可以打开嵌入式无线电、与之配对、连接 SPP 配置文件并将其附加到 COM 端口……所有这些都可以从控制面板进行。然后您可以使用 C# 和 .NET 编写您的应用程序并使用 SerialPort 类连接到您的设备,因为它只是另一个 COM 端口。这让您远离 WinMo 蓝牙 API(它是低级 C++)或 32Feet.Net 之类的第三方驱动程序(这不是一个糟糕的驱动程序)。

      希望对您有所帮助。我试着把它浓缩得更深。

      【讨论】:

        猜你喜欢
        • 2011-05-02
        • 1970-01-01
        • 1970-01-01
        • 2011-09-12
        • 2011-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-21
        相关资源
        最近更新 更多