2012-10-09 19 views
2

我试图找出正确的外部存储装置(具有更多空间附加SD卡)Android设备的位置得到正确的外部存储设备。 我从不同的用户得知,这个位置并不总是一样的。 Environment.getExternalStorageDirectory返回我总是mnt/sdcard的方法。从Android装置

我有以下的变体从用户报告:

  1. MNT/SD卡/ TFLASH
  2. MNT/SD卡/ external_sd
  3. MNT/SD卡

我怎样才能确定外部SD卡的真实位置?

+0

[查找外部SD卡位置]的可能重复(http://stackoverflow.com/questions/5694933/find-an-external-sd-card-location) –

回答

6
Environment.getExternalStorageState() returns path to internal SD mount point like "/mnt/sdcard" 

不,Environment.getExternalStorageDirectory()是指无论设备制造商认为是“外部存储”。在某些设备上,这是可移动媒体,如SD卡。在某些设备上,这是设备上闪光灯的一部分。在这里,“外部存储”是指“安装在主机上时可通过USB大容量存储模式访问的东西”,至少对于Android 2.x及以上版本而言。

But the question is about external SD. How to get a path like "/mnt/sdcard/external_sd" (it may differ from device to device)? 

除了外部存储,Android没有“外部SD”的概念,如上所述。

如果设备制造商选择将外部存储设备设置为板载闪存并且还具有SD卡,则需要联系该制造商以确定您是否可以使用SD卡(不保证)以及什么规则是使用它的,比如使用什么路径。

+0

这有帮助。非常感谢你。 –

+0

不多,实际。我的两个设备各有2个分机仓库,getExternalStorageDirectory()给我的只是其中之一(在一个设备上是SD卡,在另一间 - 这是板载分机存储)。这有点愚蠢,因为我也可以通过microUSB插入闪存,甚至插入读卡器。如此看来,唯一的办法就是用手 – Tertium

+1

大答案枚举安装存储设备。太坏了属于别人,是吧? http://stackoverflow.com/a/5695129/2608235 –

0

我怎么能确定外部SD卡的真正位置?

=> Environment.getExternalStorageDirectory()为您提供外部存储设备的确切位置。路径可能不同,因为它取决于制造商的考虑。

例如:我发现/SD卡上的一些HTC设备上的一些三星设备的/ mnt/SD卡

所以Environment.getExternalStorageDirectory()是正确的做法。