BluetoothManager无法在iOS 7上运行

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

在BluetoothManager上调用setEnabled:和setPowered:没有任何影响,我正在注册通知(BluetoothAvailabilityChangednotification),但这些通知从未发送过.

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

iOS BluetoothManager Framwork
iOS: Can’t get BluetoothManager to work
Programmatically turn on bluetooth in the iphone sdk?

解决方法

事实证明,该框架在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示例项目.自述文件描述了头文件放置,除了它只是他的项目中的构建设置,以使这些头能够被使用.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...