For*_*est 1 ios core-bluetooth bluetooth-lowenergy cbperipheral cbcentralmanager
对于BLE 4.0,它提供API来发现具有服务UUID阵列的外围设备.
我只是想找到具体的一个.怎么做到这一点?
如果需要将标识符分配给特定设备,该怎么做?
(我认为我的问题需要一些iOS核心蓝牙的背景.)
" 核心蓝牙编程指南"中介绍了重新连接到已知外围设备的过程.
基本上,如果您知道要重新连接的设备的UUID(这是对象的identifier属性CBPeripheral),那么您可以使用获取对象的retrievePeripheralsWithIdentifiers:方法然后尝试连接 -CBCentralManagerCBPeripheral
NSUUID *pid=[[NSUUID alloc]initWithUUIDString:@"45D956BB-75E4-6CEB-C06C-D531B00174E4" ];
NSArray *peripherals=[self.centralManager retrievePeripheralsWithIdentifiers:@[pid]];
if ([peripherals count]>0)
{
CBPeripheral *peripheral=[peripherals objectAtIndex:0];
peripheral.delegate=self;
[self.connectingPeripherals addObject:peripheral];
NSLog(@"Found peripheral %@ with name %@",peripheral.identifier,peripheral.name);
[self.centralManager connectPeripheral:peripheral options:nil];
}
Run Code Online (Sandbox Code Playgroud)
这可能不起作用,您可能必须扫描外围设备,因为某些外围设备(特别是iOS设备)的标识符会定期更改其UUID.
编程指南说明 -
注意:由于某些原因,可能无法连接外围设备.例如,该设备可能不在中央附近.此外,一些蓝牙低功耗设备使用随机设备地址,该地址会定期更改.因此,即使该设备附近,该设备的地址可能已经因为它是由系统中,在这种情况下CBPeripheral反对你试图连接到不符合实际的外围设备发现最后一次修改.如果因为地址已更改而无法重新连接到外围设备,则必须使用scanForPeripheralsWithServices:options:方法重新发现它.
您还必须在第一次遇到外围设备时进行扫描.
| 归档时间: |
|
| 查看次数: |
4467 次 |
| 最近记录: |