1

我有一个 iOS 应用程序可以扫描 BLE 外围设备,其中可能有很多,并允许用户决定是否连接到设备。连接后,用户还可以决定断开连接。所有这一切都很好。

我还想添加一个选项,允许用户改变主意并重新扫描设备,但这似乎有问题。最明显的方法似乎是停止扫描并重新启动它,如下所示:

    [centralManager stopScan];

    CBUUID *myServiceUUID = [CBUUID UUIDWithString: SERVICE_MYSERVICE];
    NSArray *services = [[NSArray alloc] initWithObjects: myServiceUUID, nil];
    [centralManager scanForPeripheralsWithServices: services options: nil];

这不起作用。

最终,iOS 决定告诉我的应用该设备再次投放广告,但这需要几分钟。

如何说服 iOS 在不等待几分钟的情况下第二次告诉我有关外围设备的信息?

4

1 回答 1

0

您可以CBCentralManagerScanOptionAllowDuplicatesKey在初始化时启用该选项CBCentralManager。当您的应用程序在前台时,您将收到持续的回调,但是,您需要记住,CBCentralManagerScanOptionAllowDuplicatesKey当应用程序在后台时,您将禁用。此外,扫描间隔被限制到其前景对应物的约 60 分之一。

于 2014-11-03T18:51:10.260 回答