First of all, I want to make clear the info about supported android API versions.
As stated here: https://doc.qt.io/qt-5.14/android.html,
Qt 5.14 (and 5.15), support only API 21 or later.
But Qt 5.12 and 5.9 support API 16+ (https://doc.qt.io/qt-5.12/android.html, https://doc.qt.io/qt-5.9/android-support.html).
As I understand, you don't really need to change android SDK version in build options to support the lower API, as minimum possible API automaticly set to minimum supported by your version of Qt.
So technically if you just compile your code in Qt 5.12 without changes in default build options (it is "SDK: android-30" now), it gonna support API 16 or later. Or at least it works fine for me with device emulators (API 16) and a real tablet (API 17).
The same goes for Qt 5.15 (API 21+), checked it for real device with API 23.
Here explained some important differences between supported android API version of your app and required android SDK version for Qt, which probably can be confusing (smth like API != SDK and usually API < SDK):
https://wiki.qt.io/Android => only section "Manual Installation".
It described for old Qt versions, and I suppose similar principles work for newer. Thats why you get build errors in case if "SDK: android-23", but option "SDK: android-28" works on API 23 (just example).
And I'm new in Qt too, so it would be nice if anyone correct me if there are errors.