调用需要API 23级(当前最小值为18):android.app.Activity#requestPermission



此"checkSelfPermission"函数中显示错误

这是我的代码:

private void checkBTPermissions() {
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP){
int permissionCheck =
this.checkSelfPermission("Manifest.permission.ACCESS_FINE_LOCATION");
permissionCheck+=this.checkSelfPermission("Manifest.permission.ACCESS_COARSE_LOCATION");
if (permissionCheck != 0) {
this.requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, 1001); //Any number
}
}else{
Log.d(TAG, "checkBTPermissions: No need to check permissions. SDK version < LOLLIPOP.");
}
}

权限检查仅在API 23中提供,即在棉花糖中提供。
您无需申请Api<23,因为它们在应用程序安装时自动授予。
更多信息-
https://developer.android.com/about/versions/marshmallow/android-6.0-changes#behavior-运行时权限

以下代码错误:

if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {}

Build.VERSION_CODES.LOLLIPOP=21。您只能请求API级别>22的运行时权限。

通过将代码更改为:来修复它

if(Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP_MR1) {}

或者更好的方法是使用我的图书馆。:(

最新更新