警告:我知道私有框架不会在App Store中飞行。
我正在尝试使用BluetoothManager框架让我1)检查设备上是否启用了蓝牙; 2)如果没有启用,请将其打开。
我可以按照找到here的说明成功加载蓝牙管理器,但是一旦我这样做了,蓝牙管理器似乎什么也没做。
即使启用了蓝牙,呼叫已启用也始终返回NO。调用setEnabled永远不会改变其状态。绝对是我尝试过的所有其他蓝牙管理器调用总是返回NO,nil,零元素数组等。简而言之,返回的BluetoothManager似乎完全绝成。 (我正在运行我的4.2.1 iPhone,而不是模拟器。)
我看过那些声称已经开始工作的人的帖子,但我无法得到他们的答复。任何人都可以解释为什么这可能不起作用吗?
非常感谢。
答案 0 :(得分:3)
BluetoothManager启动并连接到BTServer需要一秒钟。我只是快速调用共享实例 - [BluetoothManager sharedInstance];
- 强制它初始化。一旦完成初始化,它将发布 BluetoothAvailabilityChangedNotification 。我只是听一听,并在通知回调中尝试[[BluetoothManager sharedInstance] setEnabled:YES];
。
仅供参考, BluetoothAvailabilityChangedNotification 的NSNotification中包含的对象是布尔值,因此您应该能够检查以确保蓝牙确实可用。
答案 1 :(得分:1)
这是因为IPC。 BluetoothManager通过sendMsg等进行通信。例如,使用NSTimer查询BluetoothManager sharedInstance,以便您的程序有时间接收和处理消息。
答案 2 :(得分:1)
有一个demo project on Github called BeeTee用于演示私有框架BluetoothManager。