首页 > 解决方案 > 调用需要 API 级别 23(当前最低为 18):android.app.Activity#requestPermissions

问题描述

此“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.");
        }
    }

标签: androidandroid-studioandroid-permissions

解决方案


您在以下代码中是错误的:

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) {}

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


推荐阅读