1. android 10编译版本, 在android10系统手机上运行时, 加载手机本地全部图片时,提示FileNotFoundException: open failed: EACCES (Permission denied)
java.io.FileNotFoundException: /storage/emulated/0/DCIM/Camera/IM3.jpg: open failed: EACCES (Permission denied)
2. 在 AndroidManifest.xml 文件中, 读写权限全部添加了, 代码运行时,动态获取读写权限也判断了。但就是无法加载本地图片。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
3. 研究了很久,试了很多方法。最后发现是10系统的安全问题,默认代码是无权限读取本地图片的,解决办法 :
在 AndroidManifest.xml 文件中,添加2行代码, android:requestLegacyExternalStorage="true" tools:targetApi="q"
<application android:name="com.hn.phpersonal.aBase.MyApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:requestLegacyExternalStorage="true" android:theme="@style/AppThemeNoActionBar" tools:targetApi="q" >
4. 运行一下,完美解决问题。
关注公众号,了解更多精选文章吧。