我正在尝试在iOS 7的应用程序中使用BluetoothManager,但它似乎没有用。
在蓝牙管理器上调用setEnabled:
和setPowered:
没有任何效果,我正在注册通知(BluetoothAvailabilityChangedNotification
),但这些通知永远不会发送。
我已经导入了框架,并且我正在使用这些问题给出的示例代码,但这些都是iOS 7之前的版本,这可能是问题所在;
iOS BluetoothManager Framwork
iOS: Can't get BluetoothManager to work
Programmatically turn on bluetooth in the iphone sdk?
答案 0 :(得分:2)
事实证明,此框架在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]
的有效(?)对象,但根本没有提供任何其他功能。至少现在它有效,耶!
哦,我应该提一下我是怎么发现这个的! michaeldorner's "BeeTee" github project几乎是为iOS 7设计的基本BluetoothManager示例项目。自述文件描述了头文件的位置,除了它只是他的项目中的构建设置,以便能够使用这些头文件。
答案 1 :(得分:1)
我没有足够的回复评论,但我想补充一些关于这个问题的更多信息。我发现上面的解决方案甚至是在OP中链接的原始解决方案都适用于XCode在我的iPhone 5s上构建armv7, armv7S, and arm64
时。
但是,如果将构建设置更改为仅为标准体系结构(armv7,armv7s)构建,则产品将构建,但对setEnabled
和setPowered
的调用将不会像OP提到的那样产生影响。