2

警告:我知道私有框架不会在 App Store 中运行。

我正在尝试使用 BluetoothManager 框架让我 1)检查设备上是否启用了蓝牙,以及 2)如果未启用,请将其打开。

我可以按照此处找到的说明成功加载 BluetoothManager ,但是一旦我这样做了,BluetoothManager 似乎什么也没做。

即使启用了蓝牙,呼叫启用总是返回 NO。调用 setEnabled 永远不会改变它的状态。绝对我尝试过的所有其他 BluetoothManager 调用总是返回 NO、nil、零元素数组等。简而言之,返回的 BluetoothManager 似乎完全中性。(我正在运行我的 4.2.1 iPhone,而不是模拟器。)

我已经看到声称已经完成这项工作的人的帖子,但我无法得到他们的回复。任何人都可以阐明为什么这可能不起作用?

非常感谢。

4

3 回答 3

3

BluetoothManager 需要一秒钟才能启动并连接到 BTServer。我只是快速调用了共享实例——[BluetoothManager sharedInstance];强制它初始化。完成初始化后,它将发布一个BluetoothAvailabilityChangedNotification。我只是听听并尝试[[BluetoothManager sharedInstance] setEnabled:YES];通知回调。

仅供参考, BluetoothAvailabilityChangedNotification的 NSNotification 中包含的对象是一个布尔值,因此您应该能够检查它以确保蓝牙确实可用。

于 2011-12-08T21:02:42.000 回答
1

那是因为IPC。BluetoothManager 通过 sendMsg 等进行通信。例如,使用 NSTimer 来查询 BluetoothManager sharedInstance 以便您的程序有时间接收和处理消息。

于 2011-03-11T18:47:11.643 回答
1

Github 上有一个名为 BeeTee 的演示项目,用于演示私有框架 BluetoothManager。

于 2014-03-23T10:48:04.760 回答