I am finally working with runtime permissions for the first time and I am confused about something...
From what I understand, a statement like below is needed in the manifest when the app is running on a version of android that does not support runtime permissions.
And it is my understanding that the "18" parameter means "This permission statement is only applicable for devices running android API level 18 or less".
And from what I also understand, Android 6.0 (API 23) is when runtime permissions were implemented.
So, what is confusing to me is what happens when the app is run on a device with an API level of 19 (android 4.4) to 22 (android 5.1)?
Meaning, if the manifest declaration is only valid for device API's up to level 18, then what happens when the app runs on a lollipop device (android 5.0, API 21) and it needs to access the contacts, but android 5.0 does not support runtime permissions?
From what I understand, a statement like below is needed in the manifest when the app is running on a version of android that does not support runtime permissions.
B4X:
AddManifestText(<uses-permission
android:name="android.permission.READ_CONTACTS"
android:maxSdkVersion="18" />
)
And it is my understanding that the "18" parameter means "This permission statement is only applicable for devices running android API level 18 or less".
And from what I also understand, Android 6.0 (API 23) is when runtime permissions were implemented.
So, what is confusing to me is what happens when the app is run on a device with an API level of 19 (android 4.4) to 22 (android 5.1)?
Meaning, if the manifest declaration is only valid for device API's up to level 18, then what happens when the app runs on a lollipop device (android 5.0, API 21) and it needs to access the contacts, but android 5.0 does not support runtime permissions?