当前位置: 首页 > 知识库问答 >
问题:

调用需要API级别23(当前最小值为14):android.app。活动#requestPermissions,checkSelfPermission[重复]

穆乐逸
2023-03-14

我正在尝试添加运行时权限android(6.0.1)API 23,如果我使用SDK版本(最小和目标版本均为23)它很好,如下所示,

    <uses-sdk
                android:minSdkVersion="23"
                android:targetSdkVersion="23" />

如果我改变android:minSdkVersion(小于23)

例如:

我在下面收到错误:

调用需要API级别23(当前最小值为14):android.app.Activity#requestPermissions,checkSelfPermission

对于以下两种方法:

1)requestPermissions(permissionsList.toArray(new String[permissionsList.size()]),REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS)

2)checkSelfPermission(permission)

我尝试了活动公司。checkSelfPermission()ContextCompat。checkSelfPermission()两者都不工作。

我想不明白的是..

共有3个答案

蔚桐
2023-03-14

试试这种方法

if (Build.VERSION.SDK_INT >= 23) {
    if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE)
                != PackageManager.PERMISSION_GRANTED) {
            requestContactsPermissions1();
    } else {
        // your code
    }
}

编辑:

在较低级别(您的应用程序)build.gradle中添加依赖项块:

compile 'com.android.support:appcompat-v7:23.1.1'

或者仅在需要设计支持库时添加以下内容

compile 'com.android.support:design:23.1.1'

使用上述之一

顾池暝
2023-03-14

检查权限:

上下文兼容性检查自身权限(上下文上下文、字符串权限)

请求权限:

活动Compat.request权限(活动活动、字符串[]权限、整型请求代码)

或者在support-v4 片段

requestPermissions(字符串[]权限,int requestCode)

贾骏
2023-03-14

要么检查目标

@TargetApi(Build.VERSION_CODES.M)

例如,如果您正在检查存储权限,则可以参考此函数,

@TargetApi(Build.VERSION_CODES.M)
    public boolean CheckStoragePermission() {
        int permissionCheckRead = ContextCompat.checkSelfPermission(context,
                Manifest.permission.READ_EXTERNAL_STORAGE);
        if (permissionCheckRead != PackageManager.PERMISSION_GRANTED) {
            if (ActivityCompat.shouldShowRequestPermissionRationale((Activity) context,
                    Manifest.permission.READ_EXTERNAL_STORAGE)) {
                // Show an expanation to the user *asynchronously* -- don't block
                // this thread waiting for the user's response! After the user
                // sees the explanation, try again to request the permission.
                ActivityCompat.requestPermissions((Activity) context,
                        new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
                        Define.PERMISSION_STORAGE);
            } else {
                // No explanation needed, we can request the permission.

                ActivityCompat.requestPermissions((Activity) context,
                        new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
                        Define.PERMISSION_STORAGE);

                // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
                // app-defined int constant. The callback method gets the
                // result of the request.
            }
            return false;
        } else
            return true;
    }
 类似资料:
  • 我的代码中有这样一行: 显示以下错误: 调用需要API级别16(当前最小值为14) 如果API级别较高,它是否限制了我的应用程序可以使用的设备数量?

  • 我正在实现谷歌的方向API。我的应用程序支持和。 是否有解决方案,或者我应该检查用户的版本,并允许此功能(如果其版本受支持)? 错误: 调用需要API级别26(当前最小值为23):java。时间瞬间#现在少了。。。(Ctrl-F1)检查信息:此检查扫描应用程序中的所有Android API调用,并警告此应用程序针对的所有版本上不可用的任何调用(根据清单中的最小SDK属性)。如果你真的想使用这个AP

  • 在SDK更新(23)之后,我得到了这个lint错误,我没有对我的代码做任何更改,它在api级别为9的设备上运行良好。另外,我在代码中根本不调用android.app.活动#onCreateView。如果我单击自动修复,它会将@SuppressLint(NewApi)放入类,这样错误就会消失,我想确定这是否是要走的路。

  • 问题内容: 我是JSON的新手。我按照本教程创建了示例应用程序。当我尝试将代码复制到我的日食时,它显示错误。 请指教。谢谢 问题答案: 转到android AndroidManifest.xml 在您的文件中是8 将SDK版本更改为9,如下所示

  • 问题内容: 我是android的新手,并且正在开发android应用程序。但是我的包装行在MainActivity.java类中给出了此错误。谁能告诉我这的原因吗?这是我的课程,打包行给出了此错误。 问题答案: 首先,介绍一些细节。有不同 级别 的Android API,每个级别可能会引入新功能,如此处所示。 创建Android应用程序时,您指定运行应用程序的最低级别。这是在做与节:看到这里了解详

  • 我刚刚开始做Android开发,或多或少遵循http://developer.android.com/training/basics/firstapp/starting-activity.html教程,有一件事一直困扰着我:我有两个类,都是使用“Android活动”创建向导创建的: 和 Eclipse不断给我以下错误: 调用需要API级别11(当前最小值为8):android。应用程序。活动#ge