Generating and scanning a QR code is a workaround to minimize steps—avoiding the need to manually select the network from a long list and type the password.
Android does provide a WiFi suggestion API [1], but it has several limitations and doesn’t behave quite as expected. I initially tried using that, but eventually settled on the QR code solution.
Hope this clarifies things!
[1] https://developer.android.com/develop/connectivity/wifi/wifi...