繁体   English   中英

请求的Android权限未在应用权限设置中显示

[英]Requested Android permissions not showing in app permission settings

我正在开发一个需要INTERNETWRITE_EXTERNAL_STORAGEACCESS_WIFI_STATECHANGE_WIFI_MULTICAST_STATE权限的Cordova应用程序。 我已经在清单中请求了这些权限

<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="27" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />

INTERNETACCESS_WIFI_STATECHANGE_WIFI_MULTICAST_STATE被视为正常权限,根据文档 ,Android将在安装时自动接受它们,用户无法撤消它们。

现在在Cordova创建的MainActivity ,我在if块中添加了此代码,该块检查以确保我们在6.0或更高版本:

if (checkSelfPermission(Manifest.permission.ACCESS_WIFI_STATE) == PackageManager.PERMISSION_GRANTED &&
                checkSelfPermission(Manifest.permission.CHANGE_WIFI_MULTICAST_STATE) == PackageManager.PERMISSION_GRANTED &&
                checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
            Log.d(TAG, "has permission");
        }
        else {
            Log.d(TAG, "no permission");
            requestPermissions(new String[] { Manifest.permission.ACCESS_WIFI_STATE,
                    Manifest.permission.CHANGE_WIFI_MULTICAST_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE }, 0);
        }

问题是,在运行5.1.1的Android设备上,这有效,当我转到应用程序的权限设置时,我会看到所有4个权限。 但是在运行7.0和7.1.1的设备上,我得到一个对话框,要求批准WRITE_EXTERNAL_STORAGE和所有其他权限,因为它们是正常的,不会被要求批准。 它们会自动获得批准。 问题是即使我有权限,在较新的设备上我也无法做与这些权限相关的事情,如果我转到应用程序设置获取权限,我看到的是权限存储已授予。 没有INTERNETACCESS_WIFI_STATECHANGE_WIFI_MULTICAST_STATE 我没有在6.0设备上专门测试过,但我想我会遇到同样的问题。

为什么权限没有显示在权限设置中,为什么我无法执行需要这些权限的操作,即使Android说我有权限?

您链接到的文档包含以下语句:

“系统不会提示用户授予正常权限,用户也无法撤消这些权限。”

因此,除了WRITE_EXTERNAL_STORAGE之外的所有权限将始终被授予。 您要求的唯一权限是可以撤销的权限。

为什么权限未显示在权限设置中

好吧,根据Android版本,他们可能有点难找。 例如,在运行android 7.0的模拟器上,我找到了Apps - > MyApp - > Permissions下的所有权限列表,然后单击溢出菜单中的“所有权限”。

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM