gpt4 book ai didi

android - 即使授予权限,checkSelfPermission 也会返回 false

转载 作者:行者123 更新时间:2023-12-04 13:17:29 31 4
gpt4 key购买 nike

因此,我现在已经在这里坐了 4 个小时,对为什么我的 2 台设备行为不端而摸不着头脑。
问题是,即使授予了权限, checkSelfPermission 也会返回 false!
我 100% 确定这不应该发生,因为它在 5-6 天前按预期工作。
这是我用来检查是否授予权限的代码。

public boolean isStoragePermissionGranted() {
if (Build.VERSION.SDK_INT >= 23) {
if (checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
== PackageManager.PERMISSION_GRANTED) {
Log.v("BaseActivity", "Permission is granted");
return true;
} else {
Log.v("BaseActivity", "Storage Permission is revoked");
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
return false;
}
} else { //permission is automatically granted on sdk<23 upon installation
Log.v("BaseActivity", "Permission is granted");
return true;
}
}

现在,每当我第一次打开具有此代码的 Activity ( BaseActivity ) 时,它都会按预期工作并请求用户存储权限。
但是,在此 Activity 中的 fragment 中,我想访问文件,每当我调用此方法时,它都开始返回 false。
我已经公开了这个方法,它曾经根据情况返回真/假。
这是我检查是否在 Fragment 中授予权限的方法。
if (!((BaseActivity) getActivity()).isStoragePermissionGranted()) {
Toast.makeText(getActivity(), getString(R.string.storagePermissionError), Toast.LENGTH_LONG).show();
break;
}

我在 compileSdkVersiontargetSdkVersion 28,所以范围的外部存储权限不应该是问题。我在这里做错了什么?为什么 isStoragerPermissionGranted()方法总是返回 false即使我 100% 已授予我的应用程序的存储权限?

最佳答案

所以我发现这个应用程序出了什么问题。
问题是 Vungle 广告 SDK,它设置

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" /> 

根据 https://developer.android.com/guide/topics/manifest/uses-permission-element#maxSdk系统不会授予 WRITE_EXTERNAL_STORAGE权限,即使它是直接在设置本身中设置的。

所以这个SDK设置了这个标签,而且很难找到,因为它在 里面合并 list 我能够幸运地发现这个东西。

要在不从您的应用中删除 SDK 的情况下解决此问题,请执行以下操作:
添加 tools:remove="android:maxSdkVersion"
所以它变成了这样:
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:remove="android:maxSdkVersion"/>

到具有 maxSdkVersion 的标签设置在您自己的 Manifest.xml .

关于android - 即使授予权限,checkSelfPermission 也会返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58844842/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com