此类问题应该做排除法:
1:升级最新版SDK尝试!
2:xml/file_paths中尝试开放目录
<!--内置SD卡 Environment.getExternalStorageDirectory() .表示共享所有的目录,也可以指定共享的目录--> <external-path name="external-path" path="."/> <!--内置SD卡 Context.getExternalCacheDir() .表示共享所有的目录,也可以指定共享的目录--> <external-cache-path name="external-cache-path" path="."/> <!--内置SD卡 Context.getExternalFilesDir(null) .表示共享所有的目录,也可以指定共享的目录--> <external-files-path name="external-files-path" path="."/> <!--data目录下 Context.getFilesDir() .表示共享所有的目录,也可以指定共享的目录--> <files-path name="files_path" path="."/> <!--data缓存目录 Context.getCacheDir() .表示共享所有的目录,也可以指定共享的目录--> <cache-path name="cache-path" path="."/> <!--这个标签Android官方文档中是没有提及,Android设备的根目录,该目录下包含着手机内部存储器,外置SD卡等所有文件的目录--> <root-path name="name" path="."/>
3: Android版本迭代变化 在29版本后,只能操作本身内部存储私有目录、外部存储私有目录、共享存储,但是依然可以通过android:requestLegacyExternalStorage="true"来设置(在AndroidManifest.xml中的application添加该配置),不启用分区存储,一切照旧。 但是30版本以后,就强制性的只能操作规定的目录,这个时候依然有个兼容配置设置,android:preserveLegacyExternalStorage="true"(在AndroidManifest.xml中的application添加该配置),这个配置使得手机appSdk30版本以下,更新appSdk30版本以后,依然不启用分区存储,一切照旧。
|