READ_EXTERNAL_STORAGE适用于Android 7,但不适用于Android 10

soat7uwm  于 2023-03-16  发布在  Android
关注(0)|答案(1)|浏览(172)

我的应用需要WRITE_EXTERNAL_STORAGE权限,此代码在Android 7(API级别25)上运行正常

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, READ_PERMISSION_CHECK);
    else
        continueLoading();
}
else {
    continueLoading();
}

但是,使用相同的代码,我的应用无法获得Android 10(API级别29)上的权限。
我在清单中具有以下权限:

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

这是怎么回事?
编辑:

compileSdkVersion 27
buildToolsVersion '27.0.3'
minSdkVersion 19
targetSdkVersion 27
7gcisfzg

7gcisfzg1#

我不知道为什么,但下面的解决方案工作在API级别29:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    if (ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED)
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, READ_PERMISSION_CHECK);
    else
        continueLoading();
}
else {
    continueLoading();
}

我只是将Manifest.permission.READ_EXTERNAL_STORAGE替换为Manifest.permission.WRITE_EXTERNAL_STORAGE

相关问题