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提到的那样生效。