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

请求的Android权限未显示在应用权限设置中,第1张

概述我正在使用需要权限INTERNET,WRITE_EXTERNAL_STORAGE,ACCESS_WIFI_STATE和CHANGE_WIFI_MULTICAST_STATE的Cordova应用程序.我已经在清单中要求了这些权限,如下所示<uses-sdkandroid:minSdkVersion="21"android:targetSdkVersion="27"/><uses-permissionandroid:name="

我正在使用需要权限INTERNET,WRITE_EXTERNAL_STORAGE,ACCESS_WIFI_STATE和CHANGE_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" />

INTERNET,ACCESS_WIFI_STATE和CHANGE_WIFI_MulTICAST_STATE被视为普通权限,根据docs,它们将在安装时被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和所有其他权限,因为它们是正常的,因此不会被要求批准.它们会自动获得批准.问题是,即使我拥有权限,在较新的设备上我也无法执行与这些权限相关的 *** 作,并且如果我转到应用程序设置权限,我所看到的就是授予的权限存储. INTERNET,ACCESS_WIFI_STATE或CHANGE_WIFI_MulTICAST_STATE都没有.我尚未在6.0设备上进行专门测试,但我想我会遇到同样的问题.

为什么权限没有显示在权限设置中,为什么即使AndroID表示我具有权限,我也无法执行需要这些权限的 *** 作?

解决方法:

链接到的documentation包含以下语句:

“系统不会提示用户授予普通权限,并且用户无法撤消这些权限.”

因此,将始终授予除WRITE_EXTERNAL_STORAGE之外的所有权限.您唯一需要的许可就是可以撤销的许可.

Why are the permissions not showing in the permission settings

好吧,取决于AndroID版本,可能会很难找到它们.例如,在运行androID 7.0的模拟器上,我在Apps->下找到了所有权限的列表. MyApp->单击权限,然后在溢出菜单中单击“所有权限”.

总结

以上是内存溢出为你收集整理的请求的Android权限未显示在应用权限设置中全部内容,希望文章能够帮你解决请求的Android权限未显示在应用权限设置中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1210045.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存