No, you can't. Core Bluetooth uses internally generated UUIDs to identify the peers. If you don't scan, the system will not identify the peripherals and you will not be able to invoke the retrievePeripheralsWithIdentifiers:
method to obtain a CBPeripheral that you can call the connectPeripheral:
on.
Since there is no way to inject the UUIDs, you must scan at least once. But depending on many factors, probably many times.