I am confused about the requirement/behavior of
There are three SDK levels of note:
targetSdkVersion : this is a hint to Android of what version the app is designed to run on. An example of it relevance is that if you set
targetSdkVersion to 22 then android will not enforce permissions introduced in version 23 ... and if you up targetSdKVersion to 23, android takes this as an indication that you app knows how to handle system permission requests.
minSdkVersion : the minimum version (that you say) you app will run on. play will not show the app to users on a lower version.
compileSdkVersion: this is the version your app is compiled against. You need to download the relevant SDK to build against. This is the variable the would have the effect you expect in the example above. As the relevant system apis wont be available to your app.