1

我可以在私有框架的帮助下启用蓝牙。

现在我必须搜索附近的设备。我猜 deviceScanningEnabled 命令是正确的,但我如何获得返回的设备?有没有回调函数?我读到了一些将在 NotificationCenter 中的通知?!

在这种情况下如何使用它?

4

3 回答 3

2

据我所知,蓝牙管理器会在操作系统过滤结果后获取列表 - 这意味着您只会获得附近的耳机设备,而不是所有通用设备。如果您需要查找所有通用设备,则必须使用@rajagp 的答案。

如果找到耳机就足够了,那么您可以按照您所说的使用通知;发现设备的通知称为“BluetoothDeviceDiscoveredNotification”。您首先需要列出通知:

[[NSNotificationCenter defaultCenter] 
    addObserver: self
    selector: @selector( your_discovery_method_name)
    name: @"BluetoothDeviceDiscoveredNotification"
    object: nil];

“your_discovery_method_name”是您编写的显示/接受通知的方法。它看起来像这样:

-(void) your_discovery_method_name:(NSNotification *) notification {
     self.device = [notification object];

     NSLog(@"found: %@",self.device.address);
     // ...
}

该设备来自 BluetoothDevice 类型。

于 2012-06-03T11:24:53.697 回答
0

如果您正在为越狱手机进行开发,我建议您使用第三方蓝牙库 - BTStack。它易于使用,对我来说效果很好。可在以下网址获得:http ://code.google.com/p/btstack/ 。

于 2012-01-10T15:43:21.473 回答
0

代替

[btManager setDeviceScanningEnabled:YES]; 

[btManager scanForServices:0xFFFFFFFF];

我不知道为什么,但你会发现附近的所有设备。然后您可以配对设备。

这就是我卡住的地方......我无法获得连接或交换数据

于 2013-03-20T12:58:30.410 回答