if (file.exists()) {
if (file.canRead()) {
Log.e(“AAA”, “onCreate: file.canRead true”);
} else {
Log.e(“AAA”, “onCreate: file.canRead false”);
}
}
针对这个问题,以下是几种妥协的解决方法:
-
如应用非必须以 29 为target, 可以将
targetSdkVersion
置为 29 以下,如targetSdkVersion = 28
,这样走动态权限就正常了。 -
仍然以
targetSdkVersion
为 29,但是可在AndroidManifest.xml中application
标签添加android:requestLegacyExternalStorage="true"
,这样也可以,但是注意compileVersion
也必须同时为 29 :
android {
compileSdkVersion 29
buildToolsVersion “29.0.3”
defaultConfig {
applicationId “com.android.test.lib”
minSdkVersion 19
targetSdkVersion 29
versionCode 1
versionName “1.0”
}
…
}
这种方案暂时有效,但