蓝牙LE应用程序,如何构建它跨交叉(iOS-Android)?

时间:2015-06-12 21:51:13

标签: android ios cordova bluetooth bluetooth-lowenergy

我正在开发一款与蓝牙LE设备对话的应用。对于iOS和Android,我想要一些避免开发两次的方法。是否有一个跨平台的应用程序框架,对蓝牙LE有很好的支持?

我已经快速了解了Cordova(PhoneGap),Appcelerator,Xamarin等框架(通常的嫌疑人:例如this list),但我无法弄清楚他们是否(a)支持蓝牙LE每个平台,和(b)如果他们这样做,是否通过本机调用(访问如何?)或本机API的某种包装(包装器看起来是什么样的?),以及(c)如果是包装器,它是多么完整,以及它是多么稳定。

如果您有这些经验,可以在不同的框架中总结蓝牙LE支持的状态吗?

编辑从挖掘各种选项和以下答案中获得的一些信息:

P.S。除了蓝牙,我的需求是非常小的:这个应用程序将有很多UI元素,但不是一个复杂的类型,只是在一堆不同的屏幕上的一堆按钮/复选框/滑块(这在两个平台上维护将是非常繁琐的)。我还需要调用一些REST API。速度并不是非常重要,没有那么多应用程序逻辑(它现在主要用C语言编写),而本机UI外观并不重要。但是,在平台的旧版本上工作非常重要,最好是回到Android 4.3和iOS 7.0。

2 个答案:

答案 0 :(得分:8)

我一直在为BluetoothLE使用Randdusing的Cordova插件,它适用于Android和iOS(Windows手机仍在开发中)。作为Cordova,它设计用于HTML5 / JavaScript应用程序,但插件本身(所有Cordova插件?)都是用本机代码编写的。 在我的项目早期,我尝试了Evothings,它也有BLE插件,但我发现了一些问题,而且我不知道这些问题是否已经解决。 我的应用程序在UI要求方面与您的应用程序非常相似,如果您愿意,我可以帮助您集成BLE代码 - 但是您需要重写您的应用程序'先进入javascript。 顺便说一句,你要求使用较旧的Android,但只有Android 4.3 or higher支持AFAIK BLE。

答案 1 :(得分:3)

我正在使用Qt框架开发支持BLE的跨平台应用程序:   http://doc.qt.io/qt-5/qtbluetooth-lowenergyscanner-example.html

目前支持的平台是Andriod,iOS,OSX,Linux。据说Windows平台在即将推出的Qt 5.6版本中支持BLE(真的很期待它)。 BLE相关类易于使用,Qt在示例/文档中提供了两个示例项目。我不确定的是在扫描期间获取制造商特定数据。现在我正在连接设备以获取某些信息,如果我可以阅读制造商特定数据则不需要这些信息。 Qt的BLE目前只支持中心角色。

Qt基于C ++,如果这对你很重要。