This question already has an answer here:
I am trying add run time permissions android(6.0.1) API 23,If I use SDK version(min and target version both 23) it woks fine, like below,
<uses-sdk
android:minSdkVersion="23"
android:targetSdkVersion="23" />
If I change android:minSdkVersion(less then 23)
For example:
I am getting error below:
Call requires API level 23 (current min is 14): android.app.Activity#requestPermissions,checkSelfPermission
For following 2 methods,
1)requestPermissions(permissionsList.toArray(new String[permissionsList.size()]),REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS)
2)checkSelfPermission(permission)
I tried ActivityCompat.checkSelfPermission()
and ContextCompat.checkSelfPermission()
both are not working.
What I missing could not understand..
check the device sdk before calling the request permission
Either check for target >=23 or simply add below line above your method
For example, If you are checking for storage permissions, then you can refer to this function,
Check for permissions:
ContextCompat.checkSelfPermission(Context context, String permission)
Request permissions:
ActivityCompat.requestPermissions(Activity activity, String[] permissions, int requestCode)
or inside a support-v4
Fragment
requestPermissions(String[] permissions, int requestCode)
try this way
EDITED:
Add in dependencies block in lower-level(your app)
build.gradle
:or add below only if you need design support lib
use one of above
That is because
checkSelfPermission()
was added in API 23. So you'll have to code conditionally like: