繁体   English   中英

Android-查找所有内部和外部存储

[英]Android - Find all internal and external storage

因此,我注意到从设备到设备,内部和外部都有许多不同的配置。 在我的Evo上,只有内部存储器和外部SD卡,但是在同一年的Droid Incredible上,有内部存储器,内部SD卡(约8GB)和外部SD卡(默认为1GB)。 大概还有其他配置,并且还会有更多配置。

但是,关于枚举可用存储介质的数量,我似乎只能找到类似于Environment之类的东西,您可以在其中执行getExternalStorageDirectory()之类的操作,该方法返回一个File,而不是File []或类似的东西。 有没有一种更安全,通用的方法来枚举所有可用的存储介质? 您是否只需要导航到/ mnt /并在那里获得清单以查看所有已安装的卷?

有没有一种更安全,通用的方法来枚举所有可用的存储介质?

从SDK的角度来看,存在内部存储( getFilesDir() )和外部存储( Environment.getExternalStorageDirectory() )。 在Android 1.x / 2.x上,这些将是单独的分区; 在Android 3.0+上,它们将是一个分区。

根据定义,做任何超出SDK提供的范围的事情都是不安全的。 无法保证分区名称,它们的作用,是否可以读取它们,是否可以写入它们等等。即使您要建立一个数据库,包括所有可能性(型号,操作系统版本,分区和它们的状态), 相对于新设备和OS版本,该数据库将永远过时。

可能可以通过MediaStore来访问其他分区上的媒体文件。 例如,某些设备制造商除了提供板载外部存储设备外还提供SD卡,还会为SD卡的文件编制索引,因此SD卡中包含的所有媒体文件都会显示在MediaStore中。 这可能使您可以使用其他制造商提供的分区(例如SD卡)上的内容,但是AFAIK MediaStore无法为您提供在此类分区上放置新文件的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM