AsyncStreams has nothing to do with finding devices. AsyncStreams reads and writes data to an established connection.
There is a single API in Android for searching devices and this is how BluetoothAdmin.StartDiscovery is implemented. There is no way to make it faster.
Maybe the other screen also shows previously paired devices (similar to Serial.GetPairedDevices).
I just retested this and made sure there were no paired devices on any of the three units. All the devices were still within their discoverable time limit and all three showed only 1 other available device, each a different one: A showed B available, B showed C and C showed A!!!
AsyncStreams has nothing to do with finding devices. AsyncStreams reads and writes data to an established connection.
There is a single API in Android for searching devices and this is how BluetoothAdmin.StartDiscovery is implemented. There is no way to make it faster.
Maybe the other screen also shows previously paired devices (similar to Serial.GetPairedDevices).
You may be right about showing previously paired devices although I really don't know how they got paired. Is there an example of displaying paired devices and can I unpair then in code?
Also, I found some interesting things that may explain my confusion. I discovered that Bluetooth on my Samsung S6 Android 6.0.1 phone is always visible. There is no countdown timer which turns it off. Also, on my old $50 phone which is very slow I think the process is actually timing out before it can show all available devices.