1
我有一個iOS應用程序可以掃描BLE外圍設備,其中可能有很多,並允許用戶決定是否連接到設備。一旦連接,用戶也可以決定斷開連接。所有這些工作正常。如何掃描相同的BLE設備兩次?
我還想添加一個選項,以允許用戶改變主意並重新掃描設備,但這似乎是有問題的。最明顯的做法似乎是停止掃描並重新啓動它,如下所示:
[centralManager stopScan];
CBUUID *myServiceUUID = [CBUUID UUIDWithString: SERVICE_MYSERVICE];
NSArray *services = [[NSArray alloc] initWithObjects: myServiceUUID, nil];
[centralManager scanForPeripheralsWithServices: services options: nil];
這不起作用。
最終,iOS決定告訴我的應用設備再次投放廣告,但這需要幾分鐘的時間。
我該如何說服iOS在不等幾分鐘的情況下再次告訴我關於外設的信息?
你試過關閉你的'centralManager'並創建一個新的? – 2014-11-03 18:53:49
@IanMacDonald與這樣的經理混爲一談通常是一個壞主意。 CBCentralManagerScanOptionAllowDuplicatesKey將在前臺工作。或者,您可以嘗試異步重新啓動掃描,並在「dispatch_async」調用中嵌入停止和啓動。 – allprog 2014-11-04 06:54:17