BluetoothManager无法在iOS 7上运行

我正在尝试在iOS 7上的应用程序中使用BluetoothManager,但它似乎不起作用。

在BluetoothManager上调用setEnabled:setPowered:没有任何效果,我正在注册通知( BluetoothAvailabilityChangedNotification ),但这些通知从未发送过。

我已经导入了框架,我正在使用这些问题给出的示例代码,但这些都是iOS 7之前的版本,这可能是问题所在;

iOS BluetoothManager Framwork
iOS:无法使BluetoothManager正常工作
以编程方式打开iphone sdk中的蓝牙?

事实certificate,该框架在iOS 7中尚未受到保护,仍可供使用。

我认为问题在于BluetoothManager.h和BluetoothDevice.h头文件的位置。 它们需要位于以下目录中: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/System/Library/PrivateFrameworks/BluetoothManager.framework/Headers

并且项目的“框架搜索路径”构建设置需要包含$(SDKROOT)$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks才能使用这些文件。

我不确定为什么这样做 – 让Xcode项目中的头文件仍然返回[BluetoothManager sharedInstance]的有效(?)对象,但是根本没有提供任何其他function。 至少现在它有效,耶!

哦,我应该提一下我是如何发现这个的! michaeldorner的“BeeTee”github项目几乎是为iOS 7设计的基本BluetoothManager示例项目。自述文件描述了头文件的位置,除了它只是他的项目中的构建设置,以便使用这些头文件。

我没有足够的代表发表评论,但我想补充一些关于这个问题的更多信息。 我发现上面的解决方案甚至与OP中链接的原始解决方案都适用于XCode在我的iPhone 5s上构建armv7, armv7S, and arm64时。

但是,如果将构建设置更改为仅为标准体系结构(armv7,armv7s)构建,则产品将构建,但对setEnabled和setPowered的调用将不会像OP提到的那样生效。