我正在使用三星 A30s 手机访问手机存储文件。我的文件在设备中的位置是/storage/emulated/0/MY_FILES/。我在 MY_FIlES 目录中保留了一些文件,但我的下面的代码确实如此
不显示该目录下的任何包含文件。
那么如何获取手机存储中属于这个 MY_FILES 目录的所有文件呢?
File Directory = new File("/storage/emulated/0/MY_FIlES/");
File[] files = Directory.listFiles();
但文件返回null;
注意:我有访问文件的权限(READ_EXTERNAL_STORAGE)。
一件重要的事情是,我用最新的 API 更新了我的手机。但在更新之前,我使用了这个路径“/sdcard/MY_FIlES/,它工作得很好。
First, 从不硬编码路径对于您计划分发的应用程序。对于这些,请使用方法Context
, Environment
, or StorageVolume
(仅限 Android 11)查找要使用的基目录。
对于Android 10和11,您需要添加android:requestLegacyExternalStorage="true"
给你的<application>
清单中的元素。这会选择您进入旧存储模型,并且您现有的外部存储代码将起作用。
请注意,在 Android 11+ 中,无论您是否请求,您都将无法写入该目录WRITE_EXTERNAL_STORAGE
或不。 Google 非常希望您使用存储访问框架(例如,ACTION_OPEN_DOCUMENT
),以便用户可以更好地控制文件在其设备上或所选云存储提供商中的放置位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)