Xcode中的iPhone模拟器是否支持蓝牙低功耗?

问题描述 投票:43回答:6

我在新的Mac mini上尝试了一些iOS测试应用程序,它支持蓝牙低功耗。 CoreBluetooth框架用于那些。但是,我无法让蓝牙在iPhone模拟器中工作,这是Xcode的一部分。

当我分配一个新的CBCentralManager时,centralManagerDidUpdateState:接收代表蓝牙的CBCentralManagerStatePoweredOff当前已关闭。

我第一次运行文本应用程序时,打开了一个看起来非常有问题的框(只使用了语言变量,而不是实际文本)和两个按钮。第一个让我进入设置面板,其中有一个启用蓝牙的选项。然而,在我告诉它启用蓝牙后,它只显示旋转动画,它不会完成或取消。即使在重新启动Mac之后,仍然只有旋转动画。盒子也不再打开了。

从本质上讲,我认为iPhone模拟器应该支持蓝牙低功耗。否则,模拟器上的设置应用程序中有一个选项就没有意义。此外,中央经理状态是CBCentralManagerStatePoweredOff但不是CBCentralManagerStateUnsupported,它代表平台不支持蓝牙低功耗。这也希望可以存在支持。

  • iPhone模拟器是否支持蓝牙低功耗?
  • 如果是,我该如何启用它?
ios ios-simulator ios5 core-bluetooth
6个回答
41
投票

根据Apple的这个appnote,模拟器does support蓝牙低功耗(4.0)。唯一的问题是,即使你的计算机里面装有BLE,你也无法将模拟器与它一起使用,因为(我认为)你占用BLE上的可用性,让其他设备发现你的计算机,从而限制了Mac的功能。

因此,如果您自己购买一个BLE USB加密狗,您将能够在模拟器中使用它。

编辑:从@JoeShaw添加信息:

不幸的是,似乎从iOS 7的模拟器中删除了Core Bluetooth支持。参考:doubleencore.com/2013/09/whats-new-in-bluetooth-le-ios-7。此外,链接的技术说明似乎已被删除。


13
投票

我一直在使用模拟器测试BLE应用程序 - 但你需要使用OSX 10.7。正如Wilhelmsen所说,你还需要一个BLE USB加密狗。此外,您需要设置NVRAM设置:

$sudo nvram bluetoothHostControllerSwitchBehavior="never"

有关使用模拟器测试BLE应用程序的更多详细信息,请参阅Apple的技术说明:http://developer.apple.com/library/ios/#technotes/tn2295/_index.html


9
投票

根据http://www.doubleencore.com/2013/09/whats-new-in-bluetooth-le-ios-7/的说法,从iOS 7开始,Core USB支持已从模拟器中删除。我还没弄清楚原因,但这意味着您将来需要在真实硬件上进行测试。

似乎Apple已经删除了Tech Note 2295,因为当我点击URL时我被重定向。


5
投票

我发现Apple在their own samples写道,模拟器不能用于测试基于Core Bluetooth的应用程序。

重要提示:此项目需要蓝牙LE功能设备(目前只有iPhone 4S),并且无法在模拟器上运行。


2
投票

过去一周我一直在研究BLE应用程序并且可以放心地说不,模拟器不支持BLE,除非您使用的Mac具有BLE(Macbook Air) - 但即便如此我也不是100%肯定如何启用此功能(最有可能只是在Mac上和模拟器上使用BLE)。

如果你没有支持BLE的mac,必须找到自己的4s进行测试!


0
投票

实际上我在模拟器中尝试过并且不起作用。模拟器无法识别您的计算机中是否有蓝牙4.0,但如果您在Xcode中使用命令行工具项目,那么它可以正常工作。仅适用于您想在命令行工具中创建内容的情况。

© www.soinside.com 2019 - 2024. All rights reserved.