android - 创建蓝牙应用程序最快的移动平台是什么?

标签 android iphone blackberry windows-mobile bluetooth

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

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

我应该针对哪种移动操作系统/设备开发蓝牙串行端口配置文件 (SPP) 应用程序具有同等(无)经验,从而轻松/快速地开发它们?

黑莓

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

安卓

  • 这里几乎没有电话。
  • API 让它看起来很 straightforward寻找设备并连接到它们。
  • 大型开发社区(还有更多示例可供细读)。

WM6

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

iOS

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

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

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

最佳答案

如果您将蓝牙作为通信 channel 出售,并且您唯一的标准是开发工作原型(prototype)的时间:

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

为什么?

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

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

  3. Android 在 Android 2.1+ 中对 RFCOMM(SPP 所在的位置)提供了良好的支持。连接小模块和流式数据非常简单,示例很有帮助。不过,有一个技巧在于找到为嵌入式设备上的 SPP 服务发布的 UDID。 Android API 并不能很好地帮助您发现这个值(无论我提交了多少错误报告)。我必须通过其他方式找出它是什么,并将其硬编码到应用程序中才能运行(如果您仍然感兴趣,可以了解更多信息)。

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

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

关于android - 创建蓝牙应用程序最快的移动平台是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3579615/

相关文章:

java - 如何设置 BrowserField 以填充可用的屏幕空间?

java - J2ME - 使用 javax.microedition.amms.control.camera.CameraControl;是否可以禁用快门声音?

java - Android:设置 RecyclerView 项目的重力

iphone - UIButton以编程方式设置文本

iphone - 如何在iphone sdk 3.0中实现后台任务的Daemon进程?

iphone - 信用卡处理库 iPhone

blackberry - 无法在黑莓模拟器中显示图像

java - LibGdx - 如何从播放器获取输入,同时也能够从舞台获取输入

Android - 是否可以在文本上叠加文本?

java - 如果服务是在客户端应用程序之后安装的,我的应用程序无法连接到另一个应用程序服务