Can somebody summarize the drawbacks to setting the targetSdkVersion to 22 to avoid handling runtime permissions?
After reading the Google docs on this and a few oth
Is this really the only drawback to using targetSdkVersion 22 to force permissions at install time?
No. For example, unless your targetSdkVersion
is 24 or higher, Android 7.0+ device users will get a "this app may not support split-screen" Toast
when trying to use your app in split-screen mode.
Also, with respect to runtime permissions, bear in mind that a targetSdkVersion
of 22 or lower means that the user will be prompted for all your requested permissions at install time. You appear view this as a positive. Prospective users may disagree. Given a choice between App A which requests all sorts of permissions at install time and App B that does not, users will tend to choose App B, absent strong reasons to go with App A. Over time, as Android 6.0+ rolls out to more and more users, apps that request permissions at install time will be viewed as unmaintained or poorly written, as users will expect not to have to agree to permissions up front.
Will things stay this way for years into the future?
No.
Can I still access API 23 & 24 features in an app
Yes, though some may behave differently due to your targetSdkVersion
.
Is it possible that Google may allow permission requests at install time or run time in a future version
Anything is possible. In general, Google does not discuss future plans like this.
As stated in https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html
In the second half of 2018, Play will require that new apps and app updates target a recent Android API level. This will be required for new apps in August 2018, and for updates to existing apps in November 2018. This is to ensure apps are built on the latest APIs optimized for security and performance.
So we'll have to target the latest SDK version soon.