У меня есть приложение для iOS, которое сканирует периферийные устройства BLE, которых может быть много, и позволяет пользователю решать, подключаться к устройству или нет. После подключения пользователь также может решить разорвать соединение. Все это работает нормально.
Я также хотел бы добавить опцию, позволяющую пользователю передумать и повторно сканировать устройство, но это кажется проблематичным. Наиболее очевидный способ сделать это — остановить сканирование и перезапустить его, например:
[centralManager stopScan];
CBUUID *myServiceUUID = [CBUUID UUIDWithString: SERVICE_MYSERVICE];
NSArray *services = [[NSArray alloc] initWithObjects: myServiceUUID, nil];
[centralManager scanForPeripheralsWithServices: services options: nil];
Это не работает.
В конце концов, iOS решает сообщить моему приложению, что устройство снова рекламирует, но это занимает несколько минут.
Как я могу убедить iOS сообщить мне о периферийном устройстве во второй раз, не дожидаясь нескольких минут?
centralManager
и создать новый? - person Ian MacDonald   schedule 03.11.2014dispatch_async
. - person allprog   schedule 04.11.2014