BluetoothManager:不要获取任何“BluetoothDeviceDiscoveredNotification”

时间:2012-06-08 10:05:51

标签: iphone objective-c bluetooth device

我希望我的iPhone应用程序显示附近所有蓝牙设备的列表(例如其他iPhone,Android,...基本上所有启用蓝牙的设备)。我正在使用私有框架“BluetoothManager”(我知道,这会导致AppStore拒绝)。

到目前为止,一切正常:

  • 我可以关闭蓝牙,...
  • 我得到一个启用了DeviceScanning的NSLog ...
  • 如果我检查功能(BOOL)deviceScanningInProgress,我也会得到“是”。

但BTM似乎从未发布过“BluetoothDeviceDiscoveredNotification”。我还有另外两个带有启用蓝牙功能的iPhone,我正在测试我的应用程序,但是没有一个被发现(它们都是可发现的,我的MAC找到了它们!)

任何想法可能是什么问题?

我浏览了stackoverflow,发现了另一个问题,有人使用的代码基本相同,而且对他有用!请参阅:other question我不知道为什么我的应用程序虽然“正在工作”但却没有发现任何设备。

我真的很感激一些答案!由于没有关于BluetoothManager的文档,我正慢慢耗尽资源以获得帮助; o)

谢谢!

3 个答案:

答案 0 :(得分:2)

我用:

[btManager  setDeviceScanningEnabled:YES];
[btManager scanForServices:0xFFFFFFFF];

答案 1 :(得分:1)

我想我可能已经找到了问题的答案:似乎iOS5正在过滤任何“BluetoothDeviceDiscoveredNotification”发布之前的DeviceScanning结果。最后,只有“报告”耳机和类似设备,而设备如其他iPhone被“阻止”。

现在有一个后续问题:有没有人有想法,如何通过这个过滤?我真的不需要对设备做任何事情(沟通或任何事情),我只想发现它们!我无法相信在iOS5中应该没有办法做到这一点!有什么想法吗?

谢谢!

答案 2 :(得分:0)

我遇到了同样的问题,我使用scanForServices:~0x0代替setDeviceScanningEnabled:YES