android - 调用需要 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.");
}
}
解决方案
您在以下代码中是错误的:
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) {}
或者更好的方法是使用我的图书馆。:)
推荐阅读
- mongodb - 在 kali linux 中安装 mongodb 时,我在 apt-get 中遇到错误
- php - 尽管我调用了补丁方法'@method('PATCH')',但修改按钮不起作用,我想显示文档但它没有出现
- javascript - javascript在循环后不起作用它在while和for中都是一样的
- matplotlib - 排序子图中的标签,使用 fig.add_axes 创建
- java - 如何处理 Mallet 中 cmd 行中的空格?
- android - 如何为 Android Studio 制作 SDK 位置
- php - 单击按钮时如何仅更新 1 行而不是所有行
- mysql - MySql 8.0.15 安装失败 Invalid Server Template
- c++ - 将 C++ 方法参数转换为模板参数失败并出现编译错误
- javascript - 语义 UI 日历模式不弹出