我们正在开发一种可以用智能手机开门的系统。为此选择的技术是蓝牙BLE。有一个需要在后台激活的应用程序,用于提供这个“handles key system”。此应用程序识别并自动连接到门以打开它。
我们有一个在3个不同的iphone型号和几个不同的android手机上的工作演示。对我的问题来说,这些系统的确切细节并不重要。
对于我们的项目,我们正在与一些投资者谈判,他们说这个想法很棒,但蓝牙技术不够可靠。他们没有说它在哪一点上不够可靠。
我们需要证明蓝牙在这种情况下是可靠的,所以我们正在寻找一些蓝牙在危急情况下使用的最佳实践,例如交通或卫生部门。也欢迎来自教授或大学的一些“官方”论文!
我们也在寻找类似的情况,比如锁或其他东西是用智能手机“用手”打开的。我们在哪里可以找到这些信息、公司、论文等等?一句话:我们如何证明蓝牙对于我们的目的是稳定和可靠的(使用智能手机自动连接到某个设备进行身份验证)
我希望有人能帮助我们,否则我们的项目将被取消!
发布于 2016-05-15 07:26:20
在可靠性方面,BLE技术本身没有任何问题。而是硬件和软件实现决定了解决方案的可靠性。
在使用BLE多年后,我可以断定大多数外围SoC解决方案都非常可靠。如果它们由于某种原因崩溃,固件通常会重新启动并恢复。
如果有不可靠的东西,安卓和iOS往往是罪魁祸首。在这些OSes上运行蓝牙堆栈经常崩溃或行为不正常,很难恢复。
对于Android来说,有时蓝牙会崩溃,当你试图再次打开它时,它只会回到关闭状态。要恢复,您必须重新启动手机。但是,我必须指出,如果您设法启动了一个连接,并且没有收到任何错误,它通常会继续正常运行。为了避免Android系统在后台杀死你的应用程序,你必须使用前台服务。在一些手机上,比如华为,用户还必须明确标记应用程序在后台运行时不会被系统杀死。对于安卓系统,也有许多带有不同蓝牙控制器的手机,其中一些手机有其他控制器没有的bug。例如,我曾经用过一款Sony Xperia Z3手机,它的蓝牙控制器在LE扫描(并行运行)被取消时取消了一个挂起的连接,但根据HCI日志,挂起的连接仍在进行中。外围设备正在做广告,但从未连接到电话。一旦挂起的连接被显式取消并重新启动,它就会立即连接。
如果你想让BLE在后台运行,iOS比Android更有问题。当你的应用程序在后台运行了一段时间后,iOS会终止它。为了解决这一问题,他们有一种称为“状态保存”的东西,这是他们的解决方案,用于在传入蓝牙事件时唤醒应用程序,例如外围设备连接或发送通知。然而,有许多错误和设计决策将导致您的应用程序不会被唤醒。例如,请参阅https://forums.developer.apple.com/message/65953。如果您的应用程序已被终止,并且用户关闭然后打开蓝牙(或者系统由于内部错误而重新启动蓝牙),您的应用程序将不会在传入蓝牙事件时被唤醒。此外,如果蓝牙堆栈中出现bug (这种情况经常发生),您的应用程序将不会被唤醒,一旦用户手动打开它,所有事件都将到达您的应用程序。
https://stackoverflow.com/questions/36983582
复制相似问题